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

Kursinhalt

Git-Grundlagen

Git-Grundlagen

1. Einführung in Git
2. Fortgeschrittenere Interaktion
3. Änderungen Rückgängig Machen
4. Arbeiten mit Branches in Git

book
Einen Bestimmten Commit Rückgängig Machen

git revert

Wie bereits erwähnt, wird der Befehl git revert verwendet, um einen bestimmten Commit rückgängig zu machen. Dieser Befehl erstellt einen neuen Commit, der die durch den angegebenen Commit eingeführten Änderungen rückgängig macht. Die grundlegende Syntax ist wie folgt:

Wie Sie sehen können, sollten wir anstelle von HEAD, wie wir es beim Rückgängigmachen des letzten Commits getan haben, nun den Hash eines bestimmten Commits (Commit-ID) angeben, den wir rückgängig machen möchten (ersetzen Sie <commit-hash> durch einen gültigen Hash).

Mehr über Hashes

Denken Sie daran, dass jeder Commit seine eigene eindeutige ID hat, die im Wesentlichen eine Zeichenfolge aus Ziffern (0-9) und Buchstaben (a-f) ist, eine hexadezimale Zeichenfolge. Diese 40-stellige Zeichenfolge wird als Hash bezeichnet. Werfen wir einen Blick auf unseren neuesten Commit:

Hier ist sein Hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Hinweis

Sie werden einen anderen Hash für diesen Commit haben, aus dem unten erklärten Grund.

Der Commit-Hash wird mit dem SHA-1-Algorithmus basierend auf den folgenden Informationen berechnet:

  • Commit-Nachricht;
  • Datum;
  • Autor;
  • Snapshot des Arbeitsbaums;
  • Hash des übergeordneten Commits (oder Commits, wenn es mehr als einen übergeordneten Commit gibt).

Wenn der Commit der erste im Repository ist, wird der Hash des übergeordneten Commits offenbar nicht berechnet.

Da all diese Commit-Informationen zur Berechnung seines Hashes verwendet werden, stellt die Verwendung von Hashes als Commit-IDs die Konsistenz des Repositories sicher. Außerdem ist die Wahrscheinlichkeit, dass zwei verschiedene Commits denselben Hash haben (die Wahrscheinlichkeit einer Kollision), extrem gering, sodass es sehr unwahrscheinlich ist, dass dies zufällig passiert.

Grundsätzlich, wenn sich irgendetwas im Commit ändert, ändert sich auch sein Hash. Das bedeutet, dass Git im Falle einer Beschädigung der Daten aus welchem Grund auch immer den Hash verwenden kann, um dies zu identifizieren.

Hinweis

Beim Ändern eines Commits ändert sich die Commit-ID, weshalb es besser ist, den Befehl git commit --amend nicht zu verwenden, wenn man mit Remote-Repositories arbeitet.

Beispiel-Workflow

Bevor wir entscheiden, welchen Commit wir rückgängig machen möchten, werfen wir einen Blick auf die vier letzten Commits:

Wir können sehen, dass es einen Commit gibt, bei dem wir die Datei recipe.txt hinzugefügt haben. Lassen Sie uns diesen Commit rückgängig machen, indem wir einen neuen Commit erstellen, der diese Änderungen rückgängig macht und die Datei im Wesentlichen löscht. In meinem Fall ist der Hash folgender:

043b634d76a7a7744757350512b6367417c29e0

Ihr Hash für diesen Commit wird jedoch anders sein. Wir können diesen Commit jetzt rückgängig machen:

Ersetzen Sie diesen Hash durch Ihren Hash.

Noch einmal, der Standard-Texteditor wird mit der Standard-Commit-Nachricht zum Zurücksetzen geöffnet. Wir lassen es so, wie es ist.

Als nächstes schließen wir den Texteditor ordnungsgemäß und zeigen die Änderungen, die in diesem letzten Commit vorgenommen wurden:

7 Löschungen fanden statt, was bedeutet, dass alle 7 Zeilen der Datei gelöscht wurden. Lassen Sie uns nun überprüfen, ob die Datei selbst gelöscht wurde, indem wir alle nicht versteckten Dateien und Verzeichnisse in unserem Projektverzeichnis auflisten:

Herzlichen Glückwunsch! Wir haben die Datei recipe.txt erfolgreich gelöscht.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt