Git Revert Mehrere Commits
-
Verwendung von
git revert
zum Rückgängigmachen mehrerer Übertragungen in Git -
Verwenden von
git reset
zum Zurücksetzen mehrerer Commits in Git
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
- Alle Dateien außer einer Datei zum Commit hinzufügen
- Ändern Sie einen bestimmten Commit in Git
- Beenden Sie den Commit-Nachrichteneditor
- Fügen Sie dem letzten Commit in Git eine Datei hinzu
- Git Add und Git Commit in einem Befehl
- git add, git commit und git push in One Command
Verwandter Artikel - Git Reset
- Eine Git-Zusammenführung mit Konflikten rückgängig machen
- Machen Sie den Development-Branch mit dem Master-Branch identisch
- Unterschied zwischen den Git-Befehlen `Reset`, `Revert` und `Checkout`.
- Unterschied zwischen Git RM --Cached und Git Reset File
- Verschiedene Methoden zum Entfernen lokaler Git-Änderungen
- Änderungen in Git rückgängig machen