HOWTO · Git

Git Rebase Origin/Branch vs. Git Rebase Origin Branch

Dieser Artikel beschreibt den Unterschied zwischen den Befehlen git rebase origin/branch und git rebase origin branch.

Dieser Artikel beschreibt den Unterschied zwischen den Befehlen git rebase origin/branch und git rebase origin branch. Wir verwenden beide Befehle zum Rebase von der Fernbedienung, aber die praktische Verwendung variiert, wie wir in Kürze besprechen werden.

Unterschied zwischen den Befehlen git rebase origin/branch und git rebase origin master

Um den Unterschied zwischen den beiden Befehlen zu verstehen, schauen wir uns an, was jeder Befehl tut und welchem Arbeitsablauf sie folgen.

den Befehl git rebase origin/branch

Schauen wir uns das folgende Beispiel an:

$ git rebase origin/master

Dieser Befehl impliziert, dass wir einen Zweig aus dem master-Zweig unseres Upstreams rebasen wollen. Der Befehl allein kann den Job jedoch nicht abschließen.

Bevor Sie diesen Befehl ausführen, müssen Sie vom Upstream-Branch master abrufen.

Alternativ können Sie den traditionellen Weg verwenden:

  1. Wechseln Sie mit dem Befehl git checkout master zu Ihrem master-Zweig.
  2. Ziehen Sie mit dem Befehl git pull origin master von Ihrem Upstream-Zweig master.
  3. Wechseln Sie mit dem Befehl git checkout <branch-name> zurück zu dem Branch, den Sie rebasen möchten.
  4. Nun können Sie git rebase origin/master ausführen.

Dies sollte die Commits in Ihrem Branch mit den Commits im vorgelagerten master-Branch aktualisieren.

den Befehl git rebase origin master

Der git rebase origin master ist eine Kombination aus zwei Commits.

$ git checkout master

Und

$ git rebase origin

Wir alle wissen, dass git rebase origin bedeutet, dass wir vom Tracking-Zweig von origin oder mit anderen Worten von unserem Upstream rebasen wollen. Daraus können wir ableiten, dass git rebase origin master zu unserem master-Zweig wechselt und ihn vom Remote-Tracking-Zweig rebasiert.

Der Befehl schlägt fehl, wenn Sie keinen Remote-Tracking-Zweig für Ihren master-Zweig haben. Sie können Abhilfe schaffen, indem Sie einen vorgelagerten Tracking-Zweig setzen, wie unten gezeigt:

$ git branch --set-upstream-to=origin/master

Stellen Sie sicher, dass Sie in Ihrem master-Zweig ausgecheckt sind, bevor Sie den obigen Befehl ausführen.

Abschluss

Aus dem Obigen können wir schlussfolgern, dass der git rebase origin master verwendet wird, um den master-Zweig vom Upstream-Tracking-Zweig zu rebasen, während der git rebase origin/master verwendet wird, um einen bestimmten Zweig vom Upstream zu rebasen master-Zweig.

Der git rebase origin/master erhält jedoch nicht die neuen Commits im vorgelagerten master-Zweig. Sie müssen Ihren lokalen master-Zweig vor dem Rebasing aktualisieren.