Was ist der schnellste Weg, um Teile einer neuen Datei in Git aus der Staging-Umgebung zu entfernen?

Lesezeit: 2 Minuten

Benutzer-Avatar
Tobias

Wenn ich eine neue Datei in mehrere Commits aufteilen möchte, kann ich das git add -N <file> und dann interaktiv Zeilen mit inszenieren git gui. Wenn ich jedoch beim Inszenieren einen Fehler mache, git gui lässt mich einzelne Zeilen nicht aus der Staging-Phase entfernen, da es sich um eine neue Datei handelt (was mir wie ein Fehler vorkommt). Natürlich kann ich die gesamte Datei jederzeit aus der Staging-Umgebung entfernen und von vorne beginnen, aber ich frage mich, ob es einen effizienteren Weg gibt, dies zu tun.

ich benutze git 1.7.5.


Zur Verdeutlichung ist diese Frage spezifisch für Neu auch bekannt nicht verfolgt Dateien!

Benutzer-Avatar
Mike Weller

Geben Sie in der Befehlszeile Folgendes ein:

git reset -p

Dadurch können Sie Hunks selektiv aus dem Index entfernen, indem Sie die Standard-Befehlszeilenschnittstelle zum Verwalten von Hunks verwenden. Dies ist das Gegenteil von git add -p.

AKTUALISIEREN

OK, es scheint, dass Sie nicht selektiv verschiedene Hunks bereitstellen können, wenn die Datei neu ist. Da git-gui und der Standard-Git-Hunk-Editor dies beide nicht zulassen, ist dies wahrscheinlich nicht möglich.

Verwenden fugitive Sie können dies problemlos tun. Rufen Sie einfach die auf :Gdiff befehlen und dann inszenieren und destagnieren, was immer Sie wollen. Sie können die Indexdatei sogar direkt bearbeiten. Natürlich erfordert diese Lösung, dass Sie sich damit ziemlich wohl fühlen vim und vimdiff

Ich bin gerade auf das gleiche Problem gestoßen: Ich hatte gerade eine neue Datei übergeben und wollte einige der Zeilen in dieser Datei aus der Staging-Umgebung entfernen und diese als separates Commit haben. Die Lösung, die ich ausgearbeitet habe, war:

  • Beginnen Sie mit dem Commit, das die neue Datei hinzufügt
  • Entfernen Sie die Zeilen, die Sie aus der Quelldatei entfernen wollten, stellen Sie diese Änderungen bereit und git commit -m 'REVERTME'
  • Erstellen Sie einen neuen Commit, der diesen letzten Commit zurücksetzt: git revert HEAD
  • Verwenden git rebase -i zu fixup das erste neue Commit und optional reword das Zurücksetzen.

Eine andere einfache Möglichkeit, dies zu sortieren, besteht darin, alles aus der Datei herauszuschneiden, bis auf eine Zeile, die Sie im ersten Commit haben möchten. Stellen Sie es bereit und fügen Sie dann den Rest der Datei wieder hinzu. Ab dann könnt ihr wie gewohnt Hunks/Lines inszenieren

1175050cookie-checkWas ist der schnellste Weg, um Teile einer neuen Datei in Git aus der Staging-Umgebung zu entfernen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy