git hinzufügen. vs git commit -a

Antworten:

139

git commit -abedeutet fast [*] dasselbe wie git add -u && git commit.

Es ist nicht dasselbe, als git add .würde dies nicht git add -uverfolgte Dateien hinzufügen, die nicht ignoriert werden, sondern nur Änderungen (einschließlich Löschungen) an bereits verfolgten Dateien vornehmen.

[*] Es gibt einen subtilen Unterschied, wenn Sie sich nicht im Stammverzeichnis Ihres Repositorys befinden. git add -uStufen Aktualisierungen von Dateien im aktuellen Verzeichnis und unten, dann ist es gleich , git add -u .während git commit -aStufen und Commits Änderungen an alle verfolgten Dateien.

CB Bailey
quelle
3
Das Verhalten in [*] ändert sich aus Gründen der Konsistenz in Git 2.0.
user1284631
2
In welche Richtung? dh wird Commit -a wie Add -u oder wird Add -u wie Commit -a?
Miles Rout
5
@MilesRout: git add -uwird wie git commit -a; Sie müssen explizit sagen, git add -u .ob Sie das meinen.
CB Bailey
Dies ist absolut dasselbe, da sich Git v 2.0 git add .anders verhält.
Nick Volynkin
13

git commit -aruft automatisch git addalle ihm bekannten Dateien auf. Sie können git addauswählen, welche Dateien festgeschrieben werden sollen. Weitere Informationen finden Sie in den Dokumenten: hier

Alternative
quelle
11
Alle Dateien, die es kennt , sind mir sehr unklar, zumal diese angeblich NICHT hinzugefügt wurden
Nikana Reklawyks
1
@alternative, Trotzdem kann diese Antwort besser sein, wenn Sie eine Klarstellung für "alle Dateien, die es kennt"
hinzufügen
2
@ Pacerier entsprichtgit add -u
Alternative
2
@ Z.Khullah, also "alle (...)" bedeutet "verfolgte Dateien"?
TheFrost
1
@ TheFrost genau!
Z. Khullah
1

Durch Verwendung des Schalters git commit -a mit dem Befehl commit können Änderungen aus allen bekannten Dateien (dh allen Dateien, die bereits im Index aufgeführt sind) automatisch "hinzugefügt" werden.

Dilip
quelle