Ich ging davon aus, dass beide auf die gleiche Weise arbeiten. Beide fügen jede Datei zum Index hinzu. Aber ich liege falsch.Was ist der Unterschied zwischen `git add.` Und `git add -u`?
- Was ist der Unterschied zwischen
git add .
undgit add -u
?
Ich ging davon aus, dass beide auf die gleiche Weise arbeiten. Beide fügen jede Datei zum Index hinzu. Aber ich liege falsch.Was ist der Unterschied zwischen `git add.` Und `git add -u`?
git add .
und git add -u
?Es ist einer der git gotchas mentioned here (vor Git 2.0).
git add .
fügt nur hinzu, was dort ist, nicht was gelöscht wurde (wenn 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
kümmern würde beide Schritte ...
Mit Git 2.0, git add -A
is default.
git add <path>
ist das gleiche wie „git add -A <path>
“ jetzt, so dass „git add dir/
“ werden Wege bemerken Sie aus dem Verzeichnis entfernt und Aufzeichnung der Entfernung.
In älteren Versionen von Git wurde "git add <path>
" zum Entfernen ignoriert.Sie können "
git add --ignore-removal <path>
" zu hinzufügen nur hinzugefügt oder geändert Pfade in<path>
, wenn Sie wirklich wollen.
Warnung (git1.8.3 April 2013, for upcoming git2.0).
Ich habe meine Antwort geändert git add -u .
zu sagen, statt git add -u
.
git add -u
wird arbeitet auf dem gesamten Baum in Git 2.0 für die Übereinstimmung mit „git commit -a
“ und anderen Befehlen.
Weil es keinen Mechanismus gibt, der "git add -u
" als "git add -u .
" erscheinen lässt, ist es wichtig für diejenigen, die an "git add -u
" (ohne pathspec) gewöhnt sind, den Index nur für Pfade im aktuellen Unterverzeichnis zu aktualisieren Finger, um explizit "git add -u .
" zu sagen, wenn sie es vor Git 2.0 meinen.
Wie ich in "e" erwähnt
Wie das Handbuch sagt: git add .
werden alle Dateien in Ihrem aktuellen Verzeichnis hinzuzufügen, während git add -u .
nur diejenigen hinzufügen, werden bereits verfolgt.
'hinzufügen -u' gibt auch Deletionen inszenieren. –
nur, wenn die gelöschte Datei verfolgt wurde;) –
add -u ist das Commit -äquivalent, Art von (in Dateien, die es bearbeitet). –
git add .
alle Dateien aus dem aktuellen Verzeichnis hinzufügen
git add -u
nur Update-Dateien derzeit verfolgt.
Danke für Ihre Antwort und ein Beispiel. Das "hey!" Linie hilft mir wirklich. –
@TK: Ja, Benjol (http://stackoverflow.com/users/11410/benjol) ist ein gutes Beispiel. – VonC
Es scheint, dass wir das '.' (pathspec) nicht mit Git 2.x einfügen müssen. Es funktioniert, wenn ich getestet habe. –