El comando git add es la instrucción encargada de mover los cambios desde el Working Directory hasta el Staging Area.
Como hemos visto, el Staging Area es una “zona de preparación” característica de Git que actúa como una sala de espera intermedia y obligatoria por donde todo debe transitar.
Una vez que lo guardemos “de verdad” haciendo Commit (lo veremos en el siguiente artículo) eso quedará apuntado en la historia para siempre.
Asi que este Staging Area nos sirve para preparar lo que queremos guardar, tranquilamente, antes de enviarlo al repositorio.
Para añadir ficheros de nuestro proyecto a esta zona de preparación, usamos el git add.
El uso del Staging Area queda “oculto” cuando usamos herramientas como VScode, porque lo gestionan de forma transparente por nosotros. Lo veremos al hablar de herramientas GUI.
Añadiendo archivos específicos
La forma más básica de usar el comando es indicando explícitamente qué archivo quieres preparar.
git add nombre_del_archivo.ext
Pongamos un caso típico:
- Tienes tres archivos modificados,
style.css,index.htmlyserver.js - Pero tu cambio solo afecta a la parte visual.
- Lo correcto es preparar solo el HTML y el CSS.
git add index.html style.css
Si haces un git status ahora, verás que server.js sigue Modified, mientras que los otros dos están en Staged. Acabas de preparar únicamente estos dos ficheros.
Añadiendo todo
Si has terminado una tarea y sabes que todos los cambios que has hecho en tu carpeta son correctos y deben ir juntos, puedes usar el comodín:
git add .
El punto . representa el directorio actual. Este comando añade todos los archivos nuevos, modificados y eliminados desde la carpeta donde estás hacia abajo.
Usaréis muchas veces este comando porque es muy cómodo. Pero también puede ser peligroso. Es muy fácil que se te cuele un archivo de configuración local, un log de errores o una imagen temporal que no querías subir.
Antes de hacer git add ., acostúmbrate a hacer siempre un git status para revisar qué vas a meter en el saco.
¿git add . vs git add -A?
Antiguamente había diferencias notables. Hoy en día (desde Git 2.x), git add . captura casi todo.
git add .: Añade todo en la carpeta actual y subcarpetas.git add -A(o--all): Añade todo en todo el proyecto, estés en la carpeta que estés.
