Ich bin davon ausgegangen, dass beide gleich funktionieren. Beide fügen jede Datei dem Index hinzu. Aber ich scheine falsch zu sein.
- Was ist der Unterschied zwischen
git add .
undgit add -u
?
TK.
Ich bin davon ausgegangen, dass beide gleich funktionieren. Beide fügen jede Datei dem Index hinzu. Aber ich scheine falsch zu sein.
git add .
und git add -u
?
VonC
Es ist eines der hier erwähnten Git-Gotchas (vor Git 2.0).
git add .
fügt nur das hinzu, was vorhanden ist, nicht das, was gelöscht wurde (falls verfolgt).
git add .
git commit
git status
//hey! why didn't it commit my deletes?, Oh yeah, silly me
git add -u .
git commit --amend
git add -A
würde mich um beide schritte kümmern…
Mit Git 2.0, git add -A
ist Standard.
git add <path>
ist das gleiche wie “git add -A <path>
“jetzt, damit”git add dir/
” bemerkt Pfade, die Sie aus dem Verzeichnis entfernt haben, und zeichnet das Entfernen auf.
In älteren Git-Versionen “git add <path>
” verwendet, um Entfernungen zu ignorieren.Sie können sagen “
git add --ignore-removal <path>
“, um nur hinzugefügte oder geänderte Pfade hinzuzufügen<path>
wenn du wirklich willst.
Warnung (git1.8.3 April 2013, für kommendes git2.0).
Ich habe meine Antwort geändert, um zu sagen git add -u .
anstatt git add -u
.:
git add -u
Wille auf den gesamten Baum wirken in Git 2.0 für Konsistenz mit “git commit -a
” und andere Befehle.
Weil es keinen Mechanismus geben wird, um “git add -u
„benimm dich wie“git add -u .
“, es ist wichtig für diejenigen, die daran gewöhnt sind “git add -u
” (ohne Pfadspezifikation) Aktualisieren des Index nur für Pfade im aktuellen Unterverzeichnis, um mit dem Training ihrer Finger zu beginnen, explizit zu sagen “git add -u .
” wenn sie es ernst meinen, bevor Git 2.0 kommt.
Wie ich in “e” erwähnt habe
Danke für deine Antwort und ein Beispiel. Das “Hallo!” Linie hilft mir wirklich.
– TK.
3. Februar 2010 um 14:15 Uhr
@TK: Ja, das Beispiel von Benjol (stackoverflow.com/users/11410/benjol) ist gut.
– VonC
3. Februar 2010 um 14:18 Uhr
Es scheint, dass wir das nicht setzen müssen .
(Pfadspezifikation) mit Git 2.x. Es funktioniert, wenn ich es getestet habe.
– Sanghyun Lee
24. Juli 2015 um 3:26 Uhr
Auch von Git 2.0, git add .
fügt alle Änderungen zum Index hinzu als -A
Option ist Standard. Überprüfen Sie diese Antwort stackoverflow.com/a/26343584/524588
– Sanghyun Lee
24. Juli 2015 um 3:28 Uhr
@Sangdol Vielen Dank für diese Erinnerung. Ich habe die Antwort entsprechend aktualisiert.
– VonC
24. Juli 2015 um 5:57 Uhr
Benjamin Bannier
Wie das Handbuch sagt: git add .
fügt alle Dateien im aktuellen Verzeichnis hinzu, wohingegen git add -u .
fügt nur diejenigen hinzu, die bereits verfolgt werden.
add -u
wird auch Löschungen inszenieren.
– CB Bailey
3. Februar 2010 um 7:56 Uhr
nur wenn die gelöschte Datei getrackt wurde 😉
– Benjamin Bannier
3. Februar 2010 um 7:57 Uhr
add -u ist das Äquivalent von commit -a, eine Art (in Dateien, auf denen es operiert).
– lprsd
3. Februar 2010 um 9:26 Uhr
Bannier: Wenn die gelöschte Datei nicht nachverfolgt wurde, gibt es dann sowieso nichts aus dem Staging-Bereich zu löschen?
– CB Bailey
3. Februar 2010 um 13:08 Uhr
git add .
fügt alle Dateien aus dem aktuellen Verzeichnis hinzu
git add -u
nur aktuell verfolgte Dateien aktualisieren.
Vielleicht Unterschiede zwischen Git 2.0 und Versionen von Git davor abdecken?
– Peter Mortensen
5. Oktober 2019 um 19:00 Uhr