Löschen Sie ein Commit, aber behalten Sie Änderungen in Git bei
- Löschen Sie ein Commit, aber behalten Sie Änderungen in Git bei
-
Löschen Sie ein Commit und behalten Sie Änderungen mit dem Befehl
git reset
bei
Dieser Artikel beschreibt die Schritte, die erforderlich sind, um einen Git-Commit rückgängig zu machen und gleichzeitig die durch denselben Commit eingeführten Änderungen beizubehalten. Wir werden zwei Befehle behandeln, die wir verwenden können und die die gleichen Auswirkungen haben.
Lassen Sie uns ohne weiteres Umschweife direkt einsteigen.
Löschen Sie ein Commit, aber behalten Sie Änderungen in Git bei
Lassen Sie uns ein Beispiel verwenden, um dieses Konzept zu untersuchen.
Angenommen, wir haben den unten gezeigten Commit-Verlauf in unserem Repo, wie löschen wir den letzten Commit, behalten aber die Änderungen bei?
Es gibt zwei Methoden, die wir anwenden können, um unser Ziel zu erreichen. Schauen wir uns die erste Methode an, die am einfachsten ist.
Löschen Sie ein Commit und behalten Sie Änderungen mit dem Befehl git reset
bei
Wir können den Befehl git reset
verwenden, um einen Commit rückgängig zu machen und dabei die Änderungen beizubehalten, wie unten gezeigt:
$ git reset HEAD~
Dies sollte den Commit Update Config.py
entfernen, aber die Änderungen an der Datei beibehalten. Wir können den Befehl git log
ausführen, um unseren Fall zu bestätigen.
Wenn Sie den Befehl git status
ausführen, werden Sie sehen, dass Sie nicht bereitgestellte Änderungen haben. Dies bedeutet nicht unbedingt, dass sich Ihre Datei geändert hat.
Wenn wir den Befehl git reset
ohne die Option --soft
oder --hard
verwenden, macht Git den angegebenen Commit rückgängig, ohne die vom Commit betroffenen Dateien zu ändern.
Sie können die Änderungen zum Index hinzufügen und den Befehl git commit --amend--no-edit
ausführen, um die Änderungen aus dem Index zu entfernen und sie in den neuesten Commit einzuhängen.
Anstatt den Commit zu löschen, können Sie alternativ mit der Entwicklung fortfahren und den Befehl git commit --amend
ausführen, wenn es an der Zeit ist, einen neuen Commit durchzuführen. An diesem Punkt fügen Sie Ihre neuen Änderungen dem Commit hinzu, das Sie löschen möchten, und Sie können auch die Commit-Nachricht bearbeiten.
Kurz gesagt, Git ermöglicht es uns, einen Commit rückgängig zu machen und die durch denselben Commit eingeführten Änderungen beizubehalten. Wir können den Befehl git reset
und den Befehl git commit --amend
verwenden, um unser Ziel zu erreichen.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn