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?
Sie können git add
vor der Übergabe rückgängig machen mit
git reset <file>
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 <Datei>
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).
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 <file>..." 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 <file>..." to unstage)
Dazu kann git remove
oder git rm
mit der Option --cached
verwendet werden. Versuchen Sie es:
git help rm