Was ist der Unterschied zwischen `git add .` und `git add -u`?

Lesezeit: 3 Minuten

1647293286 898 Was ist der Unterschied zwischen git add und git
TK.

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 . und git add -u?

Was ist der Unterschied zwischen git add und git
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

Was ist der Unterschied zwischen git add und git
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 Dokumentation hinzufügen

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

1003170cookie-checkWas ist der Unterschied zwischen `git add .` und `git add -u`?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy