Neuverankerung des lokalen Zweigs beim Ziehen von Änderungen aus dem entfernten Repository-Zweig in Git

Azhar Bashir Khan 6 Februar 2022
Neuverankerung des lokalen Zweigs beim Ziehen von Änderungen aus dem entfernten Repository-Zweig in Git

In diesem Tutorial wird das Rebasing des lokalen Zweigs eingeführt, wenn Änderungen aus dem Remote-Repository-Zweig in Git abgerufen werden.

Wir verwenden Git, ein Versionskontrollsystem, um Änderungen an den Dateien nachzuverfolgen. Wir schreiben die Änderungen in den lokalen Zweig des lokalen Repositorys. Dieser lokale Zweig ist einem entfernten Zweig des entfernten Repositorys zugeordnet.

Von Zeit zu Zeit synchronisieren wir die Änderungen des entfernten Repositorys mit denen in unserem lokalen Repository. Wir ziehen die Änderungen aus dem entfernten Zweig in den lokalen Zweig.

Wenn wir die Remote-Branch-Änderungen einziehen, können wir den lokalen Branch rebasen (d. h.), um die unveröffentlichten Änderungen zusätzlich zu den veröffentlichten Änderungen erneut anzuwenden.

Wir werden dies nun an einem Beispiel veranschaulichen.

Verwenden von git pull --rebase zum Rebasen des lokalen Zweigs beim Pullen aus dem Remote-Repository-Zweig in Git

In einer kollaborativen Entwicklungsumgebung erstellen wir mithilfe von Git Branches im lokalen Repository in unserem lokalen System. Wir verknüpfen diesen lokalen Zweig mit einem entfernten Zweig im entfernten Repository.

Wir stellen die vorgenommenen Änderungen an Dateien in unserer lokalen Niederlassung bereit und schreiben sie fest. Wir veröffentlichen diese Änderungen dann im Remote-Zweig im Remote-Repository.

Dann ziehen andere Mitglieder des Teams, die ebenfalls mit demselben Repository arbeiten, die veröffentlichten Änderungen in die lokalen Branches ihrer Systeme.

Daher führen wir regelmäßig diesen Prozess durch, bei dem lokale Änderungen an das Remote-Repository übertragen und die veröffentlichten Änderungen aus dem Remote-Repository abgerufen werden.

Wenn wir die veröffentlichten Änderungen des Remote-Zweigs in unseren lokalen Zweig ziehen, haben wir die Möglichkeit, eine Zusammenführung oder eine Rebase durchzuführen.

Im Falle einer Zusammenführung verwenden wir den Befehl git pull --merge, die Standardoption. Wenn wir die Änderungen des entfernten Repositorys im Zusammenführungsfall abrufen, werden die lokalen Änderungen mit den entfernten Änderungen zusammengeführt.

Ein Merge-Commit wird erstellt, um auf die neuesten lokalen und Remote-Commits zu verweisen.

Im Falle einer Rebase verwenden wir den Befehl git pull --rebase. Bei einem Rebase werden die unveröffentlichten lokalen Änderungen des lokalen Zweigs zusätzlich zu den veröffentlichten Änderungen des Remote-Repositorys erneut angewendet.

Im Rebase-Fall wird kein neuer Commit erstellt.

Angenommen, wir haben einen Zweig namens feature im lokalen Repository, der mit einem entfernten Zweig mit demselben Namen im entfernten Repository verknüpft ist.

Jeder Entwickler im Team hätte die lokale Verzweigung feature in seinem lokalen System.

Angenommen, ein Entwickler hat ein paar Änderungen an der lokalen Verzweigung feature vorgenommen.

Angenommen, andere Entwickler haben einige Änderungen am Remote-Zweig feature des Remote-Repositorys veröffentlicht.

Somit sieht die Situation der Zweige nun wie in der Abbildung unten aus.

              P---Q---R feature (local branch)
             /
A---B---C---D---E---G feature (remote branch)

Wie in der obigen Abbildung gezeigt, haben wir jetzt eine gegabelte Historie. Wir müssen die Änderungen aus dem Remote-Zweig in den lokalen Zweig ziehen, um die veröffentlichten Änderungen zu erhalten.

Angenommen, die neuen Commits im entfernten Zweig feature sind für die im lokalen Zweig relevant (was normalerweise der Fall ist). Daher würden wir in diesem Fall bei einem Pull eine Rebase anstelle einer Zusammenführung durchführen.

Wir müssen den Befehl git pull mit der Option --rebase ausführen, um eine Rebase durchzuführen. Die Syntax des Befehls lautet git pull --rebase <remote-repository> <remote-branch-name>.

In unserem Fall würden wir also wie folgt vorgehen, um unser lokales Zweig-feature umzubasieren.

$ git pull --rebase origin feature

Daher sehen die Branches nach Ausführung des obigen git pull-Befehls wie in der folgenden Abbildung dargestellt aus.

                      P---Q---R feature (local branch)
                     /
A---B---C---D---E---G feature (remote branch)

Somit werden, wie in der Abbildung gezeigt, alle unveröffentlichten Commits des lokalen Zweigs feature verschoben, wenn sich die Spitze des entfernten Zweigs feature ändert. Ein neuer Commit wird nicht erstellt.

Der Hauptvorteil der Rebase-Option besteht darin, dass die Projekthistorie viel übersichtlicher ist als bei der Merge-Option.

Außerdem erhalten wir, wie in der Abbildung oben gezeigt, einen linearen Projektverlauf. Es sind keine Gabeln vorhanden. Mit dem Befehl git log können Sie ganz einfach durch die Historie des Projekts blättern.

Daher haben wir uns mit dem Rebasing des lokalen Zweigs befasst, wenn Änderungen aus dem Remote-Repository in Git abgerufen werden.

Für weitere Informationen, besuchen Sie bitte -

  1. git-pull
  2. Merging vs. Rebasing

Verwandter Artikel - Git Pull

Verwandter Artikel - Git Rebase