Setzen Sie das Git-Repository auf einen vorherigen Commit zurück

John Wachira 15 Februar 2024
  1. Entfernen Sie unveröffentlichte Commits, um das Git-Repository auf einen früheren Commit zurückzusetzen
  2. Entfernen Sie veröffentlichte Commits, um das Git-Repository auf einen früheren Commit zurückzusetzen
Setzen Sie das Git-Repository auf einen vorherigen Commit zurück

In diesem Artikel werden die verschiedenen Möglichkeiten erläutert, wie Sie ein Git-Repository auf einen früheren Commit zurücksetzen können. Mit Git können Sie fast alles rückgängig machen.

Wir werden uns sowohl das lokale als auch das Remote-Repository ansehen und wie Sie unveröffentlichte und veröffentlichte Commits rückgängig machen können.

Entfernen Sie unveröffentlichte Commits, um das Git-Repository auf einen früheren Commit zurückzusetzen

Unveröffentlichte Commits sind einfach die Commits in Ihrem lokalen Repository, die noch nicht in das Remote-Repository gepusht wurden. Wir werden ein Beispiel verwenden, um dieses Konzept zu erklären.

Beispiel 1:

Unten ist der Commit-Verlauf in unserem lokalen Repository. Beachten Sie die Kombination, die jeder Commit-Nachricht gegeben wird.

Commit-Verlauf

Wenn wir aus irgendeinem Grund feststellen, dass der letzte Commit Fehler enthält, können wir den Commit löschen und das Repository auf seinen vorherigen Zustand zurücksetzen.

In unserem Fall sollte der fehlerhafte Commit ba4c699 (Update Name) sein. Wir führen den Befehl git rest --hard <sha1-commit-hash> aus, um diesen Commit zu löschen.

git reset --hard 00e1a53

Ausgang:

HEAD is now at 00e1a53 Merge branch 'main' of https://github.com/Wachira11ke/Delftscopetech

Der obige Befehl bringt Ihr Repository zum angegebenen Commit zurück und löscht die Commits danach. Der Befehl löscht auch alle nicht festgeschriebenen Änderungen in Ihrem Repository.

Wenn Sie sie behalten und nach dem Löschen anwenden möchten, führen Sie die folgenden Befehle aus.

git stash
git reset --hard 00e1a53
git stash pop

Diese Kombination speichert die nicht festgeschriebenen Änderungen und wendet sie auf den neuen Arbeitsbereich an. Es können Zusammenführungsfehler auftreten, wenn Sie Änderungen an Dateien vorgenommen haben.

Entfernen Sie veröffentlichte Commits, um das Git-Repository auf einen früheren Commit zurückzusetzen

Veröffentlichte Commits sind die Änderungen, die auf das Remote-Repository angewendet werden. Wenn wir fehlerhafte Änderungen von unserem lokalen Repository in das entfernte Repository verschoben hätten, könnten wir das Repository auf seine vorherige Version zurücksetzen.

Es lohnt sich, andere Entwickler darauf hinzuweisen, nicht aus dem Repository abzurufen. Schauen wir uns ein Beispiel an.

Beispiel 2:

Wir haben bereits besprochen, wie Commits in unserem lokalen Repository entfernt werden. Angenommen, wir hätten den Commit, den wir gelöscht haben, bereits in das Remote-Repository verschoben.

Im folgenden Kontext können wir das Remote-Repository mit dem Befehl git push zurücksetzen.

git push --force origin HEAD

Der obige Befehl überschreibt unser Remote-Repository basierend auf dem Status unseres lokalen Repositorys. Alle Änderungen, die von anderen Entwicklern vorgenommen wurden, werden verworfen.

Hier ist eine sicherere Option:

git push --force-with-lease oriin HEAD

Sie können einen Zweig mit dem folgenden Befehl angeben:

git push -f origin <sha1-commit-hash>:branch_name

Einige Remote-Repositories haben eine Voreinstellung receive.denyNonFastForwards, die den obigen Befehl ablehnt. In einem solchen Fall müssen wir den Zweig löschen und neu erstellen.

git push origin : <branch name>
git push origin <sha1-commit-hash>:ref/heads/<branch name>
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - Git Push