2011-01-09 6 views
113

Ich habe versehentlich Dateien mit dem Befehl "git add dir" hinzugefügt. Ich habe noch nicht "git commit" ausgeführt. Gibt es eine Möglichkeit, dieses Verzeichnis und alles, was darin enthalten ist, aus dem Commit zu entfernen?Undo "git add <dir>"?

Ich habe versucht git reset dir, aber es hat nicht funktioniert. Anscheinend git reset file ist der Weg, um es rückgängig zu machen. Aber ich habe so viele Dateien und so wenig Zeit.

+3

'git reset ' aktualisiert den Index für diesen Pfad so, dass er 'HEAD' (das aktuelle Commit) entspricht. Es berührt nicht den Arbeitsbaum. – Cascabel

Antwort

182

Um ein Verzeichnis und alles in ihm aus dem Index zu entfernen,

git rm --cached -r dir

der --cached Schalter macht git rm ope Rate nur auf den Index und nicht die Arbeitskopie berühren. Der Schalter -r macht es rekursiv.

+0

dieser Befehl funktionierte für mich. Vielen Dank. – neoneye

+9

"Um das gesamte inszenierte Verzeichnis aus dem Index zu entfernen" wäre eine etwas bessere Erklärung für den Git-Befehl, denn für Git-Anfänger wie mich sieht der Befehl sehr ähnlich aus, wenn er sogar das Verzeichnis im Dateisystem löschen könnte. Nur Geschmackssache. –

+0

Deshalb habe ich den '-Cached'-Schalter fett geschrieben. Dennoch habe ich die Antwort bearbeitet, um zu qualifizieren, dass sie nur für den Index gilt. –

14

Sie wollen git rm --cached -r <dir> verwenden. Mit diesem Befehl wird der Inhalt des gestaffelten Verzeichnisses aus dem Index entfernt.

wenn das Verzeichnis bereits aufgespürt Sie neue und alte Dateien manuell zu finden, und unstage sie ...

wahrscheinlich laufen git reset <dir> danach zurückgesetzt bestehenden (und bereits aufgespürt) Dateien im Verzeichnis

+0

Das funktionierte für mich –