git add. vs git commit -a

Respuestas:

139

git commit -asignifica casi [*] lo mismo que git add -u && git commit.

No es lo mismo que git add .esto agregaría archivos sin git add -useguimiento que no se ignoran, solo cambios por etapas (incluidas las eliminaciones) a los archivos ya registrados.

[*] Hay una diferencia sutil si no estás en el directorio raíz de tu repositorio. git add -uactualiza las etapas de los archivos en el directorio actual y más abajo, es equivalente a git add -u .mientras que git commit -aetapas y confirma cambios en todos los archivos rastreados.

CB Bailey
fuente
3
El comportamiento en [*] cambiará en git 2.0, por coherencia.
user1284631
2
En que direccion es decir, ¿el commit -a se convertirá en add -u, o add -u se convertirá en commit -a?
Miles Rout
5
@MilesRout: git add -use convertirá en como git commit -a; tendrá que decir explícitamente git add -u .si eso es lo que quiere decir.
CB Bailey
Esto es absolutamente lo mismo desde Git v 2.0 donde se git add .comporta de una manera diferente.
Nick Volynkin
13

git commit -ainvoca automáticamente git adden todos los archivos que conoce. Puede usar git addpara seleccionar qué archivos enviar. Consulte los documentos para obtener más información: aquí

alternativa
fuente
11
todos los archivos que conoce no están muy claros para mí, especialmente porque supuestamente NO se agregaron
Nikana Reklawyks
1
@alternative, aún así, esta respuesta puede funcionar mejor si agrega una aclaración para "todos los archivos que conoce" .....
Pacerier
2
@Pacerier equivalente agit add -u
alternativa
2
@ Z.Khullah, ¿entonces "todos (...)" significa "archivos rastreados"?
TheFrost
1
@TheFrost precisamente!
Z. Khullah
1

Al usar el conmutador git commit -a con el comando de confirmación para "agregar" automáticamente los cambios de todos los archivos conocidos (es decir, todos los archivos que ya están enumerados en el índice)

Dilip
fuente