Löschen Sie ein Commit, aber behalten Sie Änderungen in Git bei

John Wachira 15 Februar 2024
  1. Löschen Sie ein Commit, aber behalten Sie Änderungen in Git bei
  2. Löschen Sie ein Commit und behalten Sie Änderungen mit dem Befehl git reset bei
Löschen Sie ein Commit, aber behalten Sie Änderungen in Git 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?

Repo-Commit-Verlauf

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.

Commit rückgängig machen, während Änderungen beibehalten werden

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 Wachira avatar John Wachira avatar

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

Verwandter Artikel - Git Commit