Frage Wie entferne ich eine einzelne Datei aus dem Staging-Bereich von Git, entferne sie aber nicht aus dem Index oder mache die Änderungen an der Datei selbst rückgängig?


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

Frage: Wie entferne ich eine dieser Dateien aus dem Staging-Bereich, aber entferne sie nicht aus dem Index oder mache die Änderungen an der Datei selbst rückgängig?


962
2017-10-01 19:24


Ursprung


Antworten:


Wenn ich die Frage richtig verstehe, will man einfach die "rückgängig machen" git add Das wurde für diese Datei gemacht.

Wenn Sie eine entfernen müssen einzelne Datei aus dem Bereitstellungsbereich verwenden

git reset HEAD -- <file>

Wenn Sie eine entfernen müssen ganzes Verzeichnis (Ordner) aus dem Bereitstellungsbereich verwenden

git reset HEAD -- <directoryName>

Ihre Änderungen werden beibehalten. Wenn du rennst git status Die Datei wird erneut als geändert, aber noch nicht bereitgestellt angezeigt.

Siehe die git reset Man Seite für Details.


1495
2017-10-01 19:29



git rm --cached FILE

,

git rm -r --cached CVS */CVS

137
2018-05-07 12:25



git reset <file>

Funktioniert unabhängig davon, ob Sie vorherige Commits haben oder nicht.


77
2017-08-13 04:20



Also, eine kleine Änderung an Tim Henigans Antwort: Sie müssen - vor dem Dateinamen verwenden. Es würde so aussehen:

git reset HEAD -- <file>

48
2018-02-21 16:55



git reset filename.txt

Wenn Sie eine Änderung in Dateiname.txt vorgenommen haben, haben Sie sie versehentlich zur Bühne hinzugefügt, und Sie möchten die Datei aus dem Staging entfernen, aber Sie möchten die Änderungen nicht verlieren.


6
2018-03-20 10:53



Wenn Sie Dateien nach einem bestimmten Muster entfernen möchten, das Sie verwenden git rm --cachedSie können auch Datei-Glob-Muster verwenden.

Sehen Hier.


5
2018-01-04 09:21



Wenn Sie nur eine Teilmenge der Änderungen in Ihrer Datei entfernen möchten, können Sie Folgendes verwenden:

git reset -p

oder

git reset -p <file_name>

Dieser Befehl ist im Grunde umgekehrt git add -p: Es werden nur die ausgewählten Änderungen aus dem Staging-Bereich entfernt. Ich finde es äußerst nützlich, etwas, das ich versehentlich hinzugefügt habe, zu "entfernen".


5
2018-02-17 22:13



Sie wollen:

  • Auswirkungen auf eine einzelne Datei

  • Entfernen Sie die Datei aus dem Staging-Bereich

  • Nicht einzelne Datei aus dem Index entfernen

  • Machen Sie die Änderung nicht rückgängig

und die Lösung ist

git reset HEAD file_name.ext

oder

git reset HEAD path/to/file/file_name.ext

2
2017-10-31 09:33



Wenn Sie das tun git status, Git sagt dir, wie man es instagriert:

Changes to be committed: (use "git reset HEAD <file>..." to unstage).

Damit git reset HEAD <file> arbeitete für mich und die Änderungen wurden nicht berührt.


1
2018-05-08 01:19