Einen Bestimmten Commit Zurücksetzen
Swipe um das Menü anzuzeigen
git revert
Um einen bestimmten Commit rückgängig zu machen, den Befehl git revert verwenden.
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>
Anstelle von HEAD (welcher auf den neuesten Commit abzielt), die Hash des gewünschten Commits (Commit-ID) angeben, indem <commit-hash> durch den tatsächlichen Hash-Wert ersetzt wird.
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 den neuesten Commit anzeigen:
git log -n 1
Hier ist sein Hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
Für diesen Commit wirst du aus dem unten erklärten Grund einen anderen Hash haben.
Der Commit-Hash wird mit dem SHA-1-Algorithmus anhand der folgenden Informationen berechnet:
- Commit-Nachricht;
- Datum;
- Autor;
- Snapshot des Arbeitsbaums;
- Hash des Eltern-Commits (oder der Eltern-Commits, wenn es mehr als einen gibt).
Handelt es sich um den ersten Commit im Repository, wird der Hash des Eltern-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 irgendetwas im 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
Vor der Auswahl des zu revertierenden Commits die vier letzten Commits anzeigen:
git log -n 4
Es gibt einen Commit, bei dem die Datei recipe.txt hinzugefügt wurde.
Diesen Commit rückgängig machen, um einen neuen Commit zu erstellen, der diese Änderungen aufhebt und die Datei effektiv löscht.
In diesem Beispiel lautet der Commit-Hash:
043b634d76a7a7744757350512b6367417c29e0
Der eigene Commit-Hash wird abweichen. Nun diesen Commit rückgängig machen:
git revert 043b634d76a7aa7744757350512bb3b7417c29e0
Ersetzen Sie diesen Hash durch Ihren eigenen Hash.
Wieder öffnet sich der Standard-Texteditor mit der Standard-Commit-Nachricht für das Revert. Die Nachricht unverändert lassen.
Schließe anschließend den Texteditor ordnungsgemäß und zeige die im letzten Commit vorgenommenen Änderungen an:
git show HEAD
7 Löschungen sind erfolgt, das bedeutet, alle sieben Zeilen der Datei wurden entfernt. Nun überprüfen, ob die Datei selbst gelöscht wurde, indem alle nicht-versteckten Dateien und Verzeichnisse im Projektverzeichnis aufgelistet werden:
ls -l
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