Cuando se trabaja en Git u otros sistemas de control de versiones, el concepto de “guardar” es un proceso con más matices que el de guardar en un procesador de texto u otras aplicaciones convencionales de edición de archivos. La expresión tradicional de software de “guardar” equivale al término de Git “confirmar”. Una confirmación es lo mismo que el guardado en Git. El guardado convencional debe considerarse como una operación de un sistema de archivos que se emplea para sobrescribir un archivo existente o escribir uno nuevo. De manera alternativa, la confirmación de Git es una operación que actúa sobre una colección de archivos y directorios.

El proceso de guardar los cambios en Git o en SVN también es diferente. Las confirmaciones o “registros” de SVN son operaciones que realizan un envío remoto a un servidor centralizado. Esto significa que las confirmaciones de SVN precisan de acceso a Internet para guardar por completo los cambios de los proyectos. Las confirmaciones de Git pueden capturarse y crearse de manera local, y después enviarse a un servidor remoto según sea necesario mediante el comando git push -u origin master. La diferencia fundamental entre los dos métodos radica en el diseño de las arquitecturas. Git es un modelo de aplicaciones distribuidas, mientras que SVN tiene un modelo centralizado. Las aplicaciones distribuidas son, por lo general, más robustas, ya que no presentan un único punto de fallo como un servidor centralizado.

Los comandos git add, git status y git commit se usan en combinación para guardar una instantánea del estado de un proyecto de Git.

Los repositorios de Git pueden configurarse para ignorar archivos o directorios específicos. De este modo, se evitará que Git guarde los cambios en el contenido ignorado. Git cuenta con varios métodos de configuración para gestionar la lista de elementos ignorados. Esta configuración de Git se analiza con más detalle en la página sobre git ignore.

git add

El comando git add añade un cambio del directorio de trabajo en el entorno de ensayo. Indica a Git que quieres incluir actualizaciones en un archivo concreto en la próxima confirmación. Sin embargo, git add no afecta al repositorio de manera significativa: en realidad, los cambios no se registran hasta que ejecutas git commit.

Junto con estos comandos, también necesitarás git status para ver el estado del directorio de trabajo y el entorno de ensayo.

Funcionamiento

Los comandos git add y git commit componen el flujo de trabajo fundamental de Git. Estos son los dos comandos que todos los usuarios de Git deben conocer, con independencia del modelo de colaboración de su equipo. Constituyen el medio para registrar las versiones de un proyecto en el historial del repositorio.

Además de git add y git commit, resulta esencial un tercer comando (git push) para lograr un flujo de trabajo colaborativo completo de Git. El comando git push se emplea para enviar los cambios confirmados a repositorios remotos para colaborar. Esto permite a otros miembros del equipo acceder a un conjunto de cambios guardados.

Git Tutorial: git add Snapshot

El comando git add no debe confundirse con svn add, que añade un archivo al repositorio. En su lugar, git add actúa en el nivel más abstracto de los cambios. Esto significa que git add debe llamarse cada vez que se modifica un archivo, mientras que svn add solo tiene que llamarse una vez por cada archivo. Puede parecer redundante, pero este flujo de trabajo facilita en gran medida la organización de los proyectos.

Entorno de ensayo

En lugar de confirmar todos los cambios realizados desde la última confirmación, el entorno de ensayo te permite agrupar los cambios relacionados en instantáneas con un enfoque muy claro antes de confirmarlos en el historial del proyecto. De este modo, puedes hacer todo tipo de cambios en archivos sin relación, volver atrás y dividirlos en confirmaciones lógicas mediante la adición de cambios relacionados en el entorno de ensayo, y confirmarlos de manera fraccionada. Como en cualquier sistema de control de revisiones, es fundamental crear confirmaciones atómicas para que resulte sencillo localizar los errores y revertir los cambios minimizando el impacto en el resto del proyecto.

Opciones comunes

git add 

Prepara todos los cambios de <file> para la siguiente confirmación.

git add 

Prepara todos los cambios de <directory> para la siguiente confirmación.

git add -p

Inicia una sesión de entorno de ensayo interactiva que te permite elegir las partes de un archivo que quieres añadir a la siguiente confirmación. Se te presentarán una serie de cambios y se te solicitará un comando. Utiliza y para preparar el conjunto, n para ignorarlo, s para dividirlo en conjuntos más pequeños, e para editarlo manualmente y q para salir.

Ejemplos

Al comenzar un nuevo proyecto, git add desempeña la misma función que svn import. Para crear una confirmación inicial del directorio actual, usa los siguientes dos comandos:

git add . git commit

Una vez que tengas tu proyecto en marcha, puedes añadir nuevos archivos pasando la ruta a git add:

git add hello.py git commit

Los comandos anteriores también pueden usarse para registrar los cambios en los archivos existentes. Una vez más, Git no distingue entre los cambios del entorno de ensayo en los nuevos archivos y los cambios de los archivos que ya se han añadido al repositorio.

Resumen

¿Listo para aprender a usar Git?

Prueba este tutorial interactivo.

Comienza ahora