Ich habe fälschlicherweise Dateien mit dem Befehl "git add dir" hinzugefügt. Ich habe "git commit" noch nicht ausgeführt. Gibt es eine Möglichkeit, dieses Verzeichnis und alles, was darin enthalten ist, aus dem Commit zu entfernen?
Ich habe es versucht git reset dir
, aber es hat nicht funktioniert. Anscheinend git reset file
ist der Weg, es rückgängig zu machen. Aber ich habe so viele Dateien und so wenig Zeit.
git reset <path>
Aktualisiert den Index für diesen Pfad so, dass er mitHEAD
dem aktuellen Commit übereinstimmt . Es berührt den Arbeitsbaum nicht.Antworten:
Um ein Verzeichnis und alles darin aus dem Index zu entfernen,
Der
--cached
Schalter bewirktgit rm
, dass nur der Index bearbeitet wird und die Arbeitskopie nicht berührt wird. Der-r
Schalter macht es rekursiv.quelle
--cached
Schalter fett geschrieben . Trotzdem habe ich die Antwort so bearbeitet, dass sie nur für den Index gilt.git reset HEAD folder
allesgit status folder
Sie werden verwenden wollengit rm --cached -r <dir>
. Dieser Befehl entfernt den Inhalt des bereitgestellten Verzeichnisses aus dem Index.Wenn das Verzeichnis bereits nachverfolgt wurde, müssen Sie neue und alte Dateien manuell suchen und sie entfernen.Führen Sie wahrscheinlichgit reset <dir>
danach aus, um vorhandene (und bereits verfolgte) Dateien im Verzeichnis zurückzusetzen.Update 2019:
Einfach ausführen
git reset directory
, alle neu hinzugefügten Dateien werden entfernt.quelle
git reset <dir>
alleine genug?git reset <dir>
auch funktionieren würde. Die Antwort stammt aus dem Jahr 2011, daher bin ich mir nicht sicher, ob das bereits vor 8 Jahren funktioniert hat. Ich werde die Antwort aktualisieren. Danke für den Tipp!Verwenden Sie
find
undxargs
:quelle
Unstage-Verzeichnis
Stellt alle Dateien und Ordner bereit, mit denen ich bereitgestellt habe:
Bestätigen Sie das nicht bereitgestellte Verzeichnis
Führen Sie die folgenden Schritte aus, um das Entfernen des Verzeichnisses und seines Inhalts aus dem Staging zu bestätigen (dh "Zu übernehmende Änderungen"):
oder
um zu bestätigen, dass keiner der zuvor bereitgestellten Ordner oder Dateien noch bereitgestellt wird.
quelle
Ein einfacher Befehl zum Entfernen einer bereitgestellten Datei / eines bereitgestellten Ordners, der noch nicht festgeschrieben ist, lautet -
git restore --staged <dir>
.quelle