# 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.686) | 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.