Verschiebt den Git-Zweigzeiger auf einen anderen Commit

John Wachira 15 Februar 2024
  1. Verschiebt den Git-Zweigzeiger auf einen anderen Commit, während er im Zielzweig ausgecheckt ist
  2. Verschiebt den Git-Zweigzeiger auf einen anderen Commit, während er nicht im Zielzweig ausgecheckt ist
Verschiebt den Git-Zweigzeiger auf einen anderen Commit

Dieser Artikel veranschaulicht, wie wir einen Git-Branch-Zeiger zu einem anderen Commit verschieben können. Wir werden sehen, wie wir den Zeiger bewegen können, während wir ausgecheckt und nicht ausgecheckt auf dem Zielzweig sind.

Beginnen wir mit dem einfacheren.

Verschiebt den Git-Zweigzeiger auf einen anderen Commit, während er im Zielzweig ausgecheckt ist

Das folgende Beispiel zeigt einen feature-Zweig in unserem Repository. Hier ist die Commit-Historie.

commit history

Wir wollen den Verzweigungszeiger vom Commit 4ee91ac zum Commit e65841a verschieben (d. h. HEAD@ {2}). Wie gehen wir vor?

Da wir im Zweig feature, unserem Ziel, ausgecheckt sind, können wir den Befehl git reset ausführen, wie unten gezeigt.

$ git reset --hard e65841a

Ausgang:

HEAD is now at e65841a Update README.md

Dadurch wird unsere Referenz zum angegebenen Commit verschoben. Ziemlich einfach, oder?

Kommen wir zum nächsten Szenario.

Verschiebt den Git-Zweigzeiger auf einen anderen Commit, während er nicht im Zielzweig ausgecheckt ist

Wechseln wir in den master-Zweig. Wie können wir den Branch-Zeiger für den feature-Branch bewegen, während wir im master-Branch ausgecheckt sind?

Es stehen zwei Methoden zur Verfügung. Wir beginnen mit dem einfachsten.

den Befehl git branch

Hier ist die grundlegende Syntax für den Befehl für dieses Szenario.

$ git branch -f <branch-name> <commit-hash>

In diesem Szenario möchten wir den Zeiger auf den Commit afcc8bb verschieben. Wie gehen wir vor?

Wie unten gezeigt, können wir den Zeiger für unseren Zweig feature mit dem Befehl git branch bewegen.

$ git branch -f feature afcc8bb

Dies sollte den Zeiger auf das angegebene Commit verschieben. Lassen Sie uns unseren Fall bestätigen.

git branch -f feature

So einfach ist das. Schauen wir uns die andere Methode an.

den Befehl git update-ref

Wie unten gezeigt, können wir den Befehl git update-ref verwenden, um den Verzweigungszeiger zu verschieben.

$ git update-ref -m "reset: Reset <branch-name> to <sha1-commit-hash>" refs/heads/<branch-name> <sha1-commit-hash>

Wir wollen den Zeiger weiter zum 124bfa9-Commit bewegen. Hier ist, wie wir es tun werden.

Wechseln wir zunächst zurück in den master-Zweig. Wir werden dann den Befehl ausführen, wie unten gezeigt.

$ git update-ref -m "reset: Reset feature to 124bfa9" refs/heads/feature 124bfa9

Der obige Befehl bewegt den Zeiger und fügt eine Nachricht zum reflog für unseren feature-Zweig hinzu. Lassen Sie uns unseren Fall bestätigen.

git update-ref

Hier hast du es.

Kurz gesagt, Git ermöglicht es uns, den Branch-Zeiger zu bewegen, während er im Ziel-Branch sowohl ausgecheckt als auch nicht ausgecheckt ist. Wir haben verschiedene Befehle für beide Szenarien behandelt.

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 Branch