Unterschied zwischen Git Merge Origin/Master und Git Pull

John Wachira 15 Februar 2024
Unterschied zwischen Git Merge Origin/Master und Git Pull

Dieser Artikel beschreibt die Unterschiede zwischen den Befehlen git merge origin/master und git pull. Die beiden Befehle integrieren Änderungen aus einem Remote-Repository in den aktuellen lokalen Zweig.

Jeder Befehl funktioniert jedoch einzigartig und hat unterschiedliche Anwendungsfälle, wie wir in Kürze besprechen werden. Dies ist der richtige Ort, wenn Sie neu bei Git sind und mit den beiden Befehlen zu kämpfen haben.

Unterschied zwischen git merge origin/master und git pull

Wir beginnen damit, jeden Befehl zu zerlegen, um den Hauptunterschied abzuleiten. Beginnen wir mit dem Befehl git pull.

den git pull-Befehl

Laut der Git-Dokumentation ist der Befehl git pull standardmäßig eine Kombination aus zwei Befehlen.

  1. Der Befehl git fetch
  2. Der Befehl git merge Fetch_Head

Der Befehl git push ruft Änderungen aus dem Remote-Repository ab und ruft den Befehl git merge auf, um Fetch_Head mit dem ausgecheckten lokalen Branch zusammenzuführen.

Einfacher ausgedrückt ist Fetch_Head die Referenz, die nachverfolgt, was abgerufen wurde. Es speichert den Commit an der Spitze aller Remote-Zweige.

Der Befehl git pull erfordert, dass Ihr lokaler Branch über einen Remote-Tracking-Branch verfügt. Ein Remote-Tracking-Branch ist ein Branch im Remote-Repository, aus dem Ihr lokaler Branch Änderungen zieht und an den er Änderungen pusht.

Wenn Sie keinen Remote-Tracking-Zweig für Ihren lokalen Zweig eingerichtet haben, schlägt der Befehl git pull allein fehl. In einer solchen Situation müssen Sie einen entfernten Zweig angeben.

den Befehl git merge origin/master

Der git merge origin/master integriert Änderungen vom entfernten master-Branch in den aktuellen Branch. Allein der Befehl git merge origin/master wirkt sich nicht auf lokale Branches aus.

Sie müssen zuerst den Befehl git fetch ausführen, da Ihr lokales Repository die Änderungen im Remote-Repository nicht kennt.

Kombiniert mit dem git fetch-Befehl funktioniert der git merge origin/master-Befehl wie der git pull-Befehl. Es ist jedoch kein Remote-Tracking-Zweig erforderlich.

Nehmen Sie dieses hypothetische Szenario:

In unserem Repository haben wir den Zweig master. Wir haben einen Entwicklungs-Zweig erstellt, in dem wir Änderungen vornehmen, sie mit dem master zusammenführen und sie in das Remote-Repository verschieben.

Andere Entwickler, die an demselben Projekt arbeiten, folgen demselben Arbeitsablauf.

Wir haben neue Änderungen im entfernten master-Branch, und wir möchten die Änderungen direkt in unseren development-Branch bringen, ohne den master-Branch zu aktualisieren. Wie gehen wir vor?

Da unser lokaler development-Branch keinen Remote-Tracking-Branch hat, funktioniert der git pull-Befehl nicht.

Wir müssen die Änderungen aus dem entfernten Repository holen und sie direkt in den Entwicklungs-Zweig einbinden. Hier kommt der Befehl git merge origin/master ins Spiel.

Um von der Fernbedienung abzurufen, führen wir Folgendes aus:

$ git fetch

git fetch

Beachten Sie, dass dies nur die Änderungen herunterlädt, aber nichts aktualisiert. Um die Änderungen mit unserem Zweig Entwicklung zusammenzuführen, führen wir Folgendes aus:

$ git merge origin/master

git merge origin master

Wären wir hingegen im lokalen master-Zweig ausgecheckt, hätte der git pull-Befehl funktioniert und den master-Zweig aktualisiert.

Wir verwenden den Befehl git pull, um Änderungen in unseren lokalen Branch zu integrieren, vorausgesetzt, der Branch verfügt über einen Remote-Tracking-Branch. Andererseits übernimmt der Befehl git merge origin/master Änderungen vom entfernten master-Zweig in den aktuellen lokalen Zweig.

Sie müssen aus dem Remote-Repository abrufen, bevor Sie den Befehl aufrufen.

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 Merge

Verwandter Artikel - Git Pull