# perdiendo.org/museodemetralla

entraron en mi cabeza (201) | libros (20) | me lo llevo puesto (7) | pelis (2) | Renta básica (9) | series (6) | escasez (2) | frikeando (94) | arduino (1) | autoreferencial (11) | bici (1) | esperanto (4) | eve online (3) | git (2) | GNU/linux (4) | markdown (7) | nexus7 (2) | python (7) | raspberry pi (3) | vim (1) | wordpress (1) | zatchtronics (3) | hago (751) | canciones (153) | borradores (7) | cover (42) | el extremo inútil de la escoba (2) | elec (1) | GRACO (2) | guitarlele (11) | ruiditos (11) | Solenoide (1) | fotos (37) | nanowrimo (3) | novela (26) | criaturas del pantano (5) | el año que no follamos (12) | huim (5) | rehab (4) | poemas (352) | Anclajes (15) | andando (3) | B.A.R (7) | Canción de cuna para un borracho (38) | Cercos vacíos (37) | Cien puentes en la cabeza (7) | Conejo azul (6) | Contenido del juego (5) | De tiendas (3) | del pantano (3) | Destrozos (2) | Epilogo (4) | Fuegos de artificio (5) | Imposible rescate (15) | Jugando a rojo (7) | Libro del desencuentro (2) | Lo que sé de Marte (11) | Los cuentos (21) | Montaje del juego (5) | Orden de salida (4) | palitos (31) | Piernas abiertas (7) | Poemas medianos (12) | Privado de sueño (7) | rasguemas (5) | Tanto para nada (17) | Todo a 100 (2) | Uno (4) | relatos (96) | anatemas (9) | orbital (2) | prompts (8) | vindicaciones (103) | perdiendo (1.689) | atranques (1) |

git y los tres estados

Git toma instantáneas de tus documentos a las que posteriormente puedes volver si lo necesitas. Incrementa las versiones añadiendo sólo los cambios, por lo que cada foto no pesa el total de su contenido, sino sólo en lo que difiere de la anterior. Si un archivo no se ha modificado git no lo guarda de nuevo, sino que incluye un enlace al archivo anterior.

De momento los comandos a los que iré aludiendo no son importantes, ya los explicaré más adelante y sólo los menciono para que se vayan asociando mentalmente.

  1. Confirmado (commited). El archivo ha sido añadido a una instantanea.

  2. Modificado (modified). El archivo ha sido modificado desde la última instantánea.

  3. Preparado (staged). El archivo está preparado para entrar en una nueva instantánea, pero no lo ha hecho todavía.

Tú inicias un proyecto con un par de archivos. En el ejemplo una novela, que consta del archivo ficha.md y novela.md. En ese momento los archivos están fuera de git, ya que no se se le ha indicado que tiene que hacerles seguimiento. Una vez que estén como queremos para una primera instantánea, utilizaremos git add ficha.md, git add novela.md o simplemente git add . para incluirlos.

En ese momento los archivos estarán en el tercer estado, preparados para la instantánea. Podemos seguir trabajando sobre ellos, pero si no volvemos a añadirlos con add al guardar la instantánea se guardarán tal y como estaban cuando utilizamos el git add.

Así, un mismo archivo puede estar en tres estados diferentes a la vez, y lo utilizaremos según nos convenga. Habrá una versión del archivo commited que será la que guardamos la última vez, otra versión stagged con los cambios que hemos ido haciendo hasta el objetivo que queremos que sea nuestra siguiente instantánea y modificado con el comienzo de los siguientes cambios.

Pongamos que el primer cambio importante que queremos registrar en instantáneas es, simplemente, cuando colocamos la ficha estándar que utilizamos para la historia y los personajes, que es ficha.md. En ese caso, una vez metida en la carpeta la marcamos como preparada con git add ficha.md y git commit con la descripción, por ejemplo, «ficha insertada». Después de hacerlo empezamos a trabajar el primer personaje en ella, y cuando terminamos lo marcamos con git add y seguimos con el siguiente personaje porque estamos inspirados. En ese caso tendríamos una instantanea con la ficha vacía, el mismo archivo preparado con la descripción del primer personaje y el mismo archivo modificado con la descripción del segundo personaje.

Para no perder nada haríamos commit con el comentario «descripción primer personaje», volveríamos a hacer git add para cambiar la parte del archivo modificado a preparado y haríamos un nuevo commit con el mensaje «descripción segundo personaje».

No es que ese tenga que ser el modo de trabajar, son sólo las distintas opciones. Podemos hacer una instantánea cuando hayamos terminado algo, seguir modificando hasta llegar a un punto que nos interese guardar y en ese mismo momento prepararlo (add) y fotografiarlo (commit).

Las tres grandes secciones de un proyecto git son, respectivamente:

  1. El directorio de git donde se guardan las instantáneas.

  2. El area de trabajo, que es dónde estamos haciendo cambios.

  3. El área de preparación, que es donde están los archivos fijados para la siguiente instantánea.

Una vez fijada la última, cuando sigamos haciendo cambios los archivos que toquemos estarán en el área de trabajo, y los que preparemos para el siguiente fijado estarán en al área de preparación. Para que un archivo pase a estar modificado sólo tenemos que modificarlo desde la última instantánea, para prepararlo tenemos que hacer git add sobre él y para fijarlo git commit.

git

¿Es git algo útil para un tipo que quiere escribir algo? Eso me pregunto.

Es un sistema de control de versiones. Crea instantáneas de tu trabajo que almacena en una base de datos que puedes revisar. En vez de tener doscientos archivos con doscientas versiones de lo que estás haciendo tienes uno con un registro de los cambios. Puedes crear ramas, hacer, por ejemplo, dos o tres capítulos dos y desarrollarlos sin perder ninguno.

Es una barbaridad, la verdad. Puede ser sorprendentemente útil si llega el caso. Borraste un diálogo hace seis meses y te gustaría volver a leerlo, y lo encuentras. No es demasiado complicado a nivel individual, add, push, pull, clone… cuatro cosas. Otras raras, tokens, claves ssh, pero nada serio. Estoy usando gitlab, en una carpeta de Dropbox que también respaldo con Mega.

Se lleva muy bien con markdown (que es texto plano, claro), así que seguiré con ello. De momento todavía no me ha hecho falta, pero será grandioso cuando lo haga.

He empezado varios proyectos, un libro con herramientas de software libre para escritores, del borrador al epub; un libro de poemas y dibujos que va lento, lento, lento; una novela alcohólica como en los viejos tiempos, criaturas del pantano; la segunda parte de la novela que terminé en febrero, que no ha leído casi nadie porque participa en un premio y un repositorio con mis libros viejos, tanto en prosa como en verso.

Y me falta el tiempo, y eso no que no hago nada, no quedo con nadie. Sólo curro, camino, aprendo cosas que no sé si necesitaré pero me gustan, escribo, duermo. No me da el día para avanzar lo que me gustaría, y me fastidia. Tengo que repasar las grietas, me debo estar perdiendo en alguna de ellas.