Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Einen Bestimmten Commit Zurücksetzen | Änderungen Rückgängig Machen
Git-Grundlagen

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
Der neueste Commit

Hier ist sein Hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Hinweis

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.

Berechnung des Hashwerts

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.

Note
Hinweis

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
Vier letzte Commits

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.

Git revert

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

Standardmäßige Rücksetzungs-Commit-Nachricht

Schließe anschließend den Texteditor ordnungsgemäß und zeige die im letzten Commit vorgenommenen Änderungen an:

git show HEAD
Der letzte Commit

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
Auflisten von Dateien und Verzeichnissen

Die Datei recipe.txt wurde erfolgreich gelöscht.

question-icon

Ordne die Aktionen den jeweiligen Befehlen zu.


Revert the latest commit:

Revert a specific commit:

Unstage changes:

Revert unstaged changes:

Unstage changes and then revert the changes in the working directory:

Overwrite the existing commit:

Klicken oder ziehen Sie Elemente und füllen Sie die Lücken aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 3. Kapitel 5
some-alt