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.
- Der Befehl
git fetch
- 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
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
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 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.
LinkedInVerwandter Artikel - Git Merge
- Eine Git-Zusammenführung mit Konflikten rückgängig machen
- Führen Sie den Entwicklungszweig mit dem Master zusammen
- Git Cherry-Pick vs. Merge-Workflow
- Git Merge Develop In Feature
- Git Merge Probelauf
- Git-Pull vs. Merge