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

3voto

Wenn Sie das tun git status Git sagt Ihnen, wie Sie die Bühne verlassen können:

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

Así que git reset HEAD <file> funktionierte bei mir, und die Änderungen blieben unangetastet.

2voto

Mehdi Kazemi Punkte 27

Sie müssen sich in dem Verzeichnis befinden, in dem sich die Datei befindet, und dann Folgendes in das Terminal eingeben

git checkout -- <file>

2voto

Do Nhu Vy Punkte 38281

Sie wollen:

  • Auswirkungen auf eine einzelne Datei

  • Datei aus dem Bereitstellungsbereich entfernen

  • Einzelne Datei nicht aus dem Index entfernen

  • Die Änderung selbst nicht rückgängig machen

und die Lösung lautet

git reset HEAD file_name.ext

o

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

1voto

rite2hhh Punkte 332

Wenn Sie Änderungen an vielen verfolgten Dateien vornehmen, aber nur einige von ihnen bereitstellen möchten, können Sie eine

git add .

ist nicht immer vorteilhaft (oder empfehlenswert), da es alle getrackten Dateien bereitstellt (in einigen Fällen, in denen Sie Änderungen nur für sich selbst behalten und nicht an das entfernte Repository weiterleiten möchten).

Es ist auch nicht ideal, eine Reihe von

git add path/to/file1 path/to/file2

wenn Sie viele verschachtelte Verzeichnisse haben (was bei den meisten Projekten der Fall ist) - wird lästig

In diesem Fall ist die Git-GUI hilfreich (wahrscheinlich das einzige Mal, dass ich sie benutze). Öffnen Sie einfach die Git-GUI, sie zeigt staged und unstaged Dateiabschnitte an. Wählen Sie die Dateien aus dem Staged-Bereich aus, die Sie unstaged machen wollen, und drücken Sie

Ctrl+U (für Windows)

um sie zu enttarnen.

0voto

Khang Azun Punkte 381

Meine Probe:

$ git status
On branch feature/wildfire/VNL-425-update-wrong-translation
Your branch and 'origin/feature/wildfire/VNL-425-update-wrong-translation' have diverged,
and have 4 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

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

    modified:   ShopBack/Source/Date+Extension.swift
    modified:   ShopBack/Source/InboxData.swift
    modified:   ShopBack/en.lproj/Localizable.strings

Wie Sie vielleicht bemerken

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

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