2010-02-03 14 views

Antwort

59

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

+5

Danke für Ihre Antwort und ein Beispiel. Das "hey!" Linie hilft mir wirklich. –

+0

@TK: Ja, Benjol (http://stackoverflow.com/users/11410/benjol) ist ein gutes Beispiel. – VonC

+0

Es scheint, dass wir das '.' (pathspec) nicht mit Git 2.x einfügen müssen. Es funktioniert, wenn ich getestet habe. –

19

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.

+7

'hinzufügen -u' gibt auch Deletionen inszenieren. –

+0

nur, wenn die gelöschte Datei verfolgt wurde;) –

+0

add -u ist das Commit -äquivalent, Art von (in Dateien, die es bearbeitet). –

10

git add documentaiton

git add . 

alle Dateien aus dem aktuellen Verzeichnis hinzufügen

git add -u 

nur Update-Dateien derzeit verfolgt.

Verwandte Themen