Rollback zu einem alten Commit in einem öffentlichen Git-Repository

John Wachira 15 Februar 2024
Rollback zu einem alten Commit in einem öffentlichen Git-Repository

Dieser Artikel veranschaulicht, wie wir ein öffentliches Git-Repository auf einen alten Commit zurücksetzen können. Wir können während der Arbeit mit der Git-Versionskontrolle zu jedem gewünschten Punkt zurückkehren.

Kommen wir ohne weiteres zur heutigen Tagesordnung.

Rollback zu einem alten Commit in einem öffentlichen Git-Repository

Wie immer werden wir dieses Konzept anhand eines Beispiels erläutern.

Wir haben ein Git-Repository mit dem unten gezeigten Commit-Verlauf.

commit history

An diesem Punkt in unserem Repository befindet sich HEAD beim Commit e65841a. Wir können dies auch als HEAD@{0} bezeichnen.

Wenn wir drei Commits zurücksetzen wollen, so dass HEAD beim 7c5a7db-Commit ist, d. h. HEAD@{3}, wie würden wir vorgehen?

Wir könnten den Befehl git reset ausführen, aber dies ist ein öffentliches Repository. Die Verwendung des Befehls git reset in einem öffentlichen Repo ist nicht ratsam.

Sie können am Ende mit der Zeitachse Ihres Projekts herumspielen. Denken Sie daran, dass der Befehl git reset die Commits zu dem auf der Befehlszeile angegebenen entfernt.

Eine sicherere und sauberere Möglichkeit, dies zu tun, ist der Befehl git checkout. Hier ist eine einfache Syntax für den Befehl.

$ git checkout <SHA-1>

In unserem Fall führen wir Folgendes aus:

$ git checkout 7c5a7db .

Beachten Sie das . am Ende des Befehls. Wir weisen Git an, Änderungen auf den gesamten Arbeitsbaum anzuwenden.

Führen Sie diesen Befehl immer im Stammverzeichnis Ihres Projekts aus; Andernfalls wird es nur in dem Unterverzeichnis wirksam, in das Sie eingecheckt sind.

git checkout

Dadurch werden die Commits nach dem angegebenen nicht gelöscht; Stattdessen werden alle betroffenen Dateien in der Arbeitsstruktur aktualisiert.

Wir können mit dem Code herumspielen und die Änderungen übernehmen. Nachdem wir die Änderungen übernommen haben, überprüfen wir unseren Commit-Verlauf, um unseren Fall zu überprüfen.

Commit-Verlauf zur Überprüfung

Hier hast du es. Unsere Commits sind noch intakt, aber es gibt einen neuen Commit, Rollback.

Nach dem Commit sollten die betroffenen Dateien mit denen unter HEAD@{4} identisch sein.

Kurz gesagt, öffentliche Repositories erfordern viel Sorgfalt beim Zurücksetzen auf bestimmte Commits. Verzichten Sie auf den Befehl git reset --hard, sondern verwenden Sie stattdessen den Befehl git checkout.

Es ist viel sicherer und sauberer.

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 Checkout