Versehentlich falsche Dateien in Git zu commiten, ist ein häufiger Fehler, aber zum Glück ist es einfach, diese Commits aus dem lokalen Repository rückgängig zu machen. In diesem Tutorial werden wir vier verschiedene Methoden zum Rückgängigmachen eines Commits in Git untersuchen, einschließlich Resetting, Reverting, Amending und History Rewriting.
Resetting ist der einfachste Weg, um deinen letzten Commit rückgängig zu machen, während dein Arbeitsverzeichnis unberührt bleibt. Um deinen letzten Commit zurückzusetzen, verwende den folgenden Befehl:
$ git reset HEAD~
Dieser Befehl bewegt den HEAD-Zeiger um einen Commit zurück, lässt aber deine Dateien unverändert. Du kannst Korrekturen an Dateien im Arbeitsverzeichnis vornehmen und sie erneut hinzufügen, bevor du sie committest.
Wenn dir die Änderungen, die du gemacht hast, egal sind, verwende stattdessen den folgenden Befehl:
$ git reset --hard HEAD^
Dieser Befehl bewegt den HEAD-Zeiger um einen Commit zurück und verwirft alle Änderungen, die du nach diesem Commit gemacht hast.
Wenn du deine Commits bereits in ein Remote-Repository gepusht hast, solltest du den Revert-Befehl verwenden. Revert erstellt einen neuen Commit, der die Änderungen rückgängig macht, die von einem vorherigen Commit gemacht wurden.
Um deinen letzten Commit rückgängig zu machen, verwende den folgenden Befehl:
$ git revert HEAD
Dieser Befehl erstellt einen neuen Commit, der die Änderungen des letzten Commits rückgängig macht. Du kannst die Commit-Nachricht bearbeiten, wenn du möchtest.
Wenn du nur den letzten Commit ändern musst, kannst du den Amend-Befehl verwenden. Amend ermöglicht es dir, den vorherigen Commit zu ändern, einschließlich seiner Commit-Nachricht.
Um den letzten Commit zu ändern, verwende den folgenden Befehl:
$ git commit --amend
Dieser Befehl öffnet den Standardtexteditor mit der vorherigen Commit-Nachricht. Du kannst die Nachricht ändern oder den Index bei Bedarf modifizieren.
Wenn du die History neu schreiben musst, kannst du den git push-Befehl mit der Option --force oder --force-with-lease verwenden. Das Neu-Schreiben der History kann jedoch Probleme verursachen, insbesondere wenn du Mitwirkende hast, die bereits die Änderungen gezogen haben, die du rückgängig machen möchtest.
Um die History neu zu schreiben, verwende den folgenden Befehl:
$ git push origin your-branch-name --force-with-lease
Dieser Befehl überschreibt die History des Remote-Zweigs mit deinen lokalen Änderungen. Du solltest diesen Befehl jedoch nur verwenden, wenn du weißt, was du tust.
Einen Commit rückgängig zu machen, ist ein wenig beängstigend, wenn man nicht weiß wie es funktioniert. Aber es ist tatsächlich erstaunlich einfach, wenn man es versteht. In diesem Tutorial haben wir vier verschiedene Methoden untersucht, um einen Commit in Git rückgängig zu machen, einschließlich Resetting, Reverting, Amending und History Rewriting. Wähle die Methode, die am besten zu deiner Situation passt, und verwende sie, um deinen letzten Commit rückgängig zu machen.