Wie kann ich 'git add' vor der Übergabe rückgängig machen?

Ich habe versehentlich Dateien mit dem Befehl zu Git hinzugefügt:

git add myfile.txt

Ich habe noch nicht git commit ausgeführt. Gibt es eine Möglichkeit, dies rückgängig zu machen, so dass diese Dateien nicht in den Commit aufgenommen werden?

Lösung

Sie können git add vor der Übergabe rückgängig machen mit

git reset 

rückgängig machen, was es aus dem aktuellen Index (der Liste der zu übertragenden Dateien) entfernt, ohne etwas anderes zu ändern.

Sie können verwenden

git reset

ohne einen Dateinamen verwenden, um alle fälligen Änderungen aufzuheben. Dies kann nützlich sein, wenn zu viele Dateien vorhanden sind, um sie in angemessener Zeit einzeln aufzulisten.

In alten Versionen von Git sind die oben genannten Befehle äquivalent zu git reset HEAD bzw. git reset HEAD und schlagen fehl, wenn HEAD undefiniert ist (weil Sie noch keine Übertragungen in Ihrem Repository vorgenommen haben) oder mehrdeutig ist (weil Sie einen Zweig mit dem Namen HEAD erstellt haben, was eine dumme Sache ist, die Sie nicht tun sollten). Dies wurde jedoch in Git 1.8.2 geändert, so dass Sie in modernen Versionen von Git die obigen Befehle auch vor dem ersten Commit verwenden können:

"git reset" (ohne Optionen oder Parameter) wird verwendet, um einen Fehler zu melden, wenn wenn Sie keine Übertragungen in Ihrer Historie haben, aber es gibt Ihnen jetzt einen leeren Index (der zu einem nicht existierenden Commit passt, an dem Sie noch nicht einmal beteiligt sind).

Kommentare (11)

Wenn Sie tippen:

git status

Git zeigt Ihnen an, was bereitgestellt wird, usw., einschließlich Anweisungen, wie Sie die Bereitstellung aufheben können:

use "git reset HEAD ..." to unstage

Ich finde, dass Git mich in solchen Situationen ziemlich gut dazu anregt, das Richtige zu tun.

Hinweis: Neuere Git-Versionen (1.8.4.x) haben diese Meldung geändert:

(use "git rm --cached ..." to unstage)
Kommentare (3)

Dazu kann git remove oder git rm mit der Option --cached verwendet werden. Versuchen Sie es:

git help rm
Kommentare (2)