Git Revert Mehrere Commits

Azhar Bashir Khan 30 Januar 2023
  1. Verwendung von git revert zum Rückgängigmachen mehrerer Übertragungen in Git
  2. Verwenden von git reset zum Zurücksetzen mehrerer Commits in Git
Git Revert Mehrere Commits

In diesem Tutorial werden wir sehen, wie mehrere Commits in Git zurückgesetzt werden.

In Git haben wir möglicherweise viele Commits für einige Funktionsentwicklungen durchgeführt oder einige Fehlerkorrekturen vorgenommen.

Wir können uns jetzt entscheiden, diese Arbeit einzustellen. Um also das Repository in den Zustand vor diesen Änderungen zurückzubringen, müssen wir die mehrfach durchgeführten Commits rückgängig machen.

Wir können den Befehl git revert verwenden, um mehrere Commits in Git rückgängig zu machen.

Eine andere Möglichkeit, mehrere Commits rückgängig zu machen, ist die Verwendung des Befehls git reset.

Beides wollen wir Ihnen nun an einem Beispiel verdeutlichen.

Verwendung von git revert zum Rückgängigmachen mehrerer Übertragungen in Git

Angenommen, wir haben mehrere Commits für ein paar Fehlerkorrekturen durchgeführt.

Wir können diese Commits im Protokoll von Git wie folgt sehen.

$ git log --oneline
17b787d bug3 fixed
1fefb57 bug2 fixed
8b3560b bug1 fixed
784065c feature1 developed
...

Jetzt entscheiden wir uns, diese Fehlerkorrekturen wegzuwerfen und das Repository auf den Zustand vor dem Zustand bug1 fixed zurückzusetzen.

Daher können wir den Befehl git revert mit der Option --no-commit verwenden. Die Syntax des Befehls lautet git revert --no-commit <commit>.

Um also die drei Commits der durchgeführten Fehlerbehebungen rückgängig zu machen, müssen wir wie folgt vorgehen.

$ git revert --no-commit 17b787d784065c
$ git revert --no-commit 1fefb57
$ git revert --no-commit 8b3560b

Damit befindet sich das Repository in Git nun im Zustand vor dem Commit des bug1 fixed.

Wir haben den Namen sha1 der Commits verwendet, um jeden Commit rückgängig zu machen.

Wir müssen diesen Zustand des Arbeitsbaums im Git-Repository wie folgt festschreiben.

$ git commit -m "the fixes for bugs 1 2 3 reverted"

Verwenden von git reset zum Zurücksetzen mehrerer Commits in Git

Angenommen, wir haben einige Merge-Commits im Repository. Dann funktioniert die obige Lösung mit dem git revert nicht.

In solchen Fällen müssen wir den Befehl git reset verwenden.

Um also mehrere Commits mit git reset in Git rückgängig zu machen, müssen wir wie folgt vorgehen.

$ git reset --hard 784065c
$ git reset --soft ORIG_HEAD
$ git commit

Daher haben wir den Befehl git reset verwendet, um das Repository auf den Commit zurückzusetzen, d. h. 784065c feature1 developed, das war unmittelbar vor dem ersten Bugfix in der Commit-Historie.

Daher funktioniert dies auch dann, wenn wir einige Merge-Commits haben.

Verwandter Artikel - Git Commit

Verwandter Artikel - Git Reset