1464 Stimmen

Wie entferne ich eine einzelne Datei aus dem Staging-Bereich (undo git add)?

Situation: Ich habe ein Git-Repository mit Dateien, die sich bereits im Index befinden. Ich nehme Änderungen an mehreren Dateien vor, öffne Git und füge diese Dateien mit "git add" zu meinem Staging-Bereich hinzu.

Frage: Wie kann ich eine dieser Dateien aus dem Staging-Bereich entfernen, ohne sie aus dem Index zu entfernen oder die Änderungen an der Datei selbst rückgängig zu machen?

47 Stimmen

Der Bereitstellungsraum es den Index, vielleicht könnten Sie also klarstellen, was Sie genau meinen?

0 Stimmen

2192voto

Tim Henigan Punkte 57320

Wenn ich die Frage richtig verstanden habe, wollen Sie einfach die "Rückgängigmachung" der git add die für diese Datei durchgeführt wurde.

Wenn Sie eine Einzeldatei vom Bereitstellungsraum aus, verwenden Sie

git reset HEAD -- <file>

Wenn Sie ein Produkt entfernen müssen ganzes Verzeichnis (Ordner) vom Bereitstellungsraum aus, verwenden Sie

git reset HEAD -- <directoryName>

Ihre Änderungen werden beibehalten. Wenn Sie git status wird die Datei wieder als geändert, aber noch nicht bereitgestellt angezeigt.

Siehe die git reset Manpage für Einzelheiten.

168voto

user335425 Punkte 1743
git rm --cached FILE

,

git rm -r --cached CVS */CVS

110voto

MTS Punkte 1723

git reset <file>

Funktioniert unabhängig davon, ob Sie frühere Übertragungen haben oder nicht.

56voto

GuerillaNerd Punkte 1080

Daher eine kleine Änderung der Antwort von Tim Henigan: Sie müssen -- vor den Dateinamen setzen. Das würde dann so aussehen:

git reset HEAD -- <file>

33voto

Ruik Punkte 982

Für neuere Versionen von Git gibt es git restore --staged <file> .

Wenn ich eine git status mit Git-Version 2.26.2.windows.1 wird auch für die Entstapelung empfohlen:

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)

( Diese Beitrag zeigt, dass in früheren Versionen git reset HEAD wurde zu diesem Zeitpunkt empfohlen)

Ich kann sehr empfehlen este Beitrag zur Erläuterung der Unterschiede zwischen git revert , git restore et git reset und auch zusätzliche Parameter für git restore .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X