Einen Bestimmten Commit Zurücksetzen
git revert
Um einen bestimmten Commit rückgängig zu machen, verwenden Sie den Befehl git revert
.
Dieser Befehl erstellt einen neuen Commit, der die durch den angegebenen Commit eingeführten Änderungen rückgängig macht.
Grundlegende Syntax:
git revert <commit-hash>
Anstatt HEAD (welches den letzten Commit anspricht) zu verwenden, geben Sie den Hash des Commits (Commit-ID) an, den Sie rückgängig machen möchten, indem Sie <commit-hash>
durch den tatsächlichen Hash-Wert ersetzen.
Mehr über Hashes
Jeder Commit besitzt eine eindeutige ID — eine 40-stellige hexadezimale Zeichenkette bestehend aus Ziffern (0–9) und Buchstaben (a–f). Dieser Bezeichner wird als Hash bezeichnet. Nun können Sie den neuesten Commit anzeigen:

Hier ist sein Hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
Für diesen Commit wird ein anderer Hash angezeigt, aus dem unten erläuterten Grund.
Der Commit-Hash wird mit dem SHA-1-Algorithmus anhand der folgenden Informationen berechnet:
- Commit-Nachricht;
- Datum;
- Autor;
- Snapshot des Arbeitsverzeichnisses;
- Hash des übergeordneten Commits (oder der Commits, wenn es mehr als einen Vorgänger gibt).
Handelt es sich um den ersten Commit im Repository, wird der Hash des übergeordneten Commits offensichtlich nicht berechnet.
Da alle diese Commit-Informationen zur Berechnung des Hashwerts verwendet werden, sorgt die Verwendung von Hashes als Commit-IDs für die Konsistenz des Repositorys. Außerdem ist die Wahrscheinlichkeit, dass zwei verschiedene Commits denselben Hashwert haben (die Wahrscheinlichkeit einer Kollision), extrem gering, sodass dies sehr unwahrscheinlich ist.
Im Grunde genommen ändert sich der Hashwert, sobald sich etwas am Commit ändert. Das bedeutet, dass Git im Falle einer Beschädigung der Daten aus welchem Grund auch immer den Hashwert zur Identifizierung nutzen kann.
Beim Ändern eines Commits ändert sich die Commit-ID, weshalb es besser ist, den Befehl git commit --amend
nicht zu verwenden, wenn mit Remote-Repositories gearbeitet wird.
Beispiel-Workflow
Bevor entschieden wird, welcher Commit zurückgesetzt werden soll, die vier letzten Commits anzeigen:

Es gibt einen Commit, bei dem die Datei recipe.txt
hinzugefügt wurde.
Revert dieses Commit, um einen neuen Commit zu erstellen, der diese Änderungen rückgängig macht und die Datei effektiv löscht.
In diesem Beispiel lautet der Commit-Hash:
043b634d76a7a7744757350512b6367417c29e0
Dein Commit-Hash wird abweichen. Nun diesen Commit revert:
Ersetze diesen Hash durch deinen eigenen Hash.

Erneut öffnet sich der Standard-Texteditor mit der Standard-Commit-Nachricht für das Revert. Die Nachricht unverändert lassen.

Schließen Sie anschließend den Texteditor ordnungsgemäß und zeigen Sie die im letzten Commit vorgenommenen Änderungen an:

7 Löschungen wurden durchgeführt, das heißt, alle sieben Zeilen der Datei wurden entfernt. Überprüfen Sie nun, ob die Datei selbst gelöscht wurde, indem Sie alle nicht versteckten Dateien und Verzeichnisse im Projektverzeichnis auflisten:

Die Datei recipe.txt
wurde erfolgreich gelöscht.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.57
Einen Bestimmten Commit Zurücksetzen
Swipe um das Menü anzuzeigen
git revert
Um einen bestimmten Commit rückgängig zu machen, verwenden Sie den Befehl git revert
.
Dieser Befehl erstellt einen neuen Commit, der die durch den angegebenen Commit eingeführten Änderungen rückgängig macht.
Grundlegende Syntax:
git revert <commit-hash>
Anstatt HEAD (welches den letzten Commit anspricht) zu verwenden, geben Sie den Hash des Commits (Commit-ID) an, den Sie rückgängig machen möchten, indem Sie <commit-hash>
durch den tatsächlichen Hash-Wert ersetzen.
Mehr über Hashes
Jeder Commit besitzt eine eindeutige ID — eine 40-stellige hexadezimale Zeichenkette bestehend aus Ziffern (0–9) und Buchstaben (a–f). Dieser Bezeichner wird als Hash bezeichnet. Nun können Sie den neuesten Commit anzeigen:

Hier ist sein Hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
Für diesen Commit wird ein anderer Hash angezeigt, aus dem unten erläuterten Grund.
Der Commit-Hash wird mit dem SHA-1-Algorithmus anhand der folgenden Informationen berechnet:
- Commit-Nachricht;
- Datum;
- Autor;
- Snapshot des Arbeitsverzeichnisses;
- Hash des übergeordneten Commits (oder der Commits, wenn es mehr als einen Vorgänger gibt).
Handelt es sich um den ersten Commit im Repository, wird der Hash des übergeordneten Commits offensichtlich nicht berechnet.
Da alle diese Commit-Informationen zur Berechnung des Hashwerts verwendet werden, sorgt die Verwendung von Hashes als Commit-IDs für die Konsistenz des Repositorys. Außerdem ist die Wahrscheinlichkeit, dass zwei verschiedene Commits denselben Hashwert haben (die Wahrscheinlichkeit einer Kollision), extrem gering, sodass dies sehr unwahrscheinlich ist.
Im Grunde genommen ändert sich der Hashwert, sobald sich etwas am Commit ändert. Das bedeutet, dass Git im Falle einer Beschädigung der Daten aus welchem Grund auch immer den Hashwert zur Identifizierung nutzen kann.
Beim Ändern eines Commits ändert sich die Commit-ID, weshalb es besser ist, den Befehl git commit --amend
nicht zu verwenden, wenn mit Remote-Repositories gearbeitet wird.
Beispiel-Workflow
Bevor entschieden wird, welcher Commit zurückgesetzt werden soll, die vier letzten Commits anzeigen:

Es gibt einen Commit, bei dem die Datei recipe.txt
hinzugefügt wurde.
Revert dieses Commit, um einen neuen Commit zu erstellen, der diese Änderungen rückgängig macht und die Datei effektiv löscht.
In diesem Beispiel lautet der Commit-Hash:
043b634d76a7a7744757350512b6367417c29e0
Dein Commit-Hash wird abweichen. Nun diesen Commit revert:
Ersetze diesen Hash durch deinen eigenen Hash.

Erneut öffnet sich der Standard-Texteditor mit der Standard-Commit-Nachricht für das Revert. Die Nachricht unverändert lassen.

Schließen Sie anschließend den Texteditor ordnungsgemäß und zeigen Sie die im letzten Commit vorgenommenen Änderungen an:

7 Löschungen wurden durchgeführt, das heißt, alle sieben Zeilen der Datei wurden entfernt. Überprüfen Sie nun, ob die Datei selbst gelöscht wurde, indem Sie alle nicht versteckten Dateien und Verzeichnisse im Projektverzeichnis auflisten:

Die Datei recipe.txt
wurde erfolgreich gelöscht.
Danke für Ihr Feedback!