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.


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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.