Unterschiede zwischen Git Pull Origin Master und Git Pull Origin / Master

283

Was ist der Unterschied zwischen git pull origin masterund git pull origin/master?

Rachel
quelle
1
Beruhigung hat es so ziemlich abgedeckt, aber die Nicht-Antwort ist, dass Sie es niemals tun sollten git pull origin/master. Wenn Sie den [lokal gespeicherten] Remote-Zweig zusammenführen möchten origin/master, verwenden Sie einfach git merge origin/master.
Cascabel
3
@Jefromi: Kannst du erklären, warum es immer besser ist, Git Merge zu machen als Git Pull?
Rachel
16
git pullMittel git fetchgefolgt von git merge. Es ruft den Inhalt von der Fernbedienung ab und führt ihn dann in Ihren aktuellen Zweig ein. Ist origin/masteraber eine lokale Niederlassung (Verfolgung einer entfernten Niederlassung). Wenn Sie es zusammenführen möchten, müssen Sie nichts abrufen. Es ist irreführend zu sagen, git pull origin/masterwenn Sie nicht tatsächlich von einer Fernbedienung abrufen.
Cascabel
Danke Jefromi für die nützlichen Informationen. Es hilft wirklich, das Konzept nicht so einfach zu verstehen.
Rachel
Für diejenigen, die dies lesen und immer noch verwirrt sind, origin/masterist ein lokal gespeicherter Zweig, der den Hauptzweig auf der Ursprungsfernbedienung zwischenspeichert.
Iheanyi

Antworten:

354

git pull origin masterwird Änderungen von der originFernbedienung abrufen, masterverzweigen und sie mit der lokalen ausgecheckten Verzweigung zusammenführen.

git pull origin/masterzieht Änderungen aus dem lokal gespeicherten Zweig origin/masterund führt diese mit dem lokal ausgecheckten Zweig zusammen. Der origin/masterZweig ist im Wesentlichen eine "zwischengespeicherte Kopie" dessen, woraus zuletzt gezogen wurdeorigin , woraus , weshalb er im Git-Sprachgebrauch als entfernter Zweig bezeichnet wird. Dies könnte etwas verwirrend sein.

Sie können sehen, mit welchen Zweigen verfügbar ist, git branchund git branch -rdie "Remote-Zweige" anzeigen.

Jakob Borg
quelle
1
im Fall git pull origin masterwird es an den Master - Zweig immer fusionieren, sagen sie mal am auf einem anderen Zweig in meinem Repo und dann über Befehl tut, wird es meinen aktuellen Zweig mit der Ursprung entfernten Änderungen oder meinem Master - Zweig mit den Änderungen aktualisieren?
Rachel
4
@calmh: git merge(und daher git pull) verschmilzt immer mit dem aktuellen Zweig. Um mit etwas anderem als Ihrem aktuellen Zweig zusammenzuführen, überprüfen Sie es einfach zuerst.
Cascabel
2
ähm .. Ich sehe nicht, wie sich 'origin / master' von 'origin master' unterscheidet. Sie sind beide der Hauptzweig nach Herkunft. Können Sie tatsächlich ein Beispiel geben, wann sie anders wären?
hasen
69
git pull origin/masterMöglicherweise war dies ein gültiger Befehl, als dies geschrieben wurde, aber heutzutage (Git 1.7.10.3) schlägt er fehl fatal: 'origin/master' does not appear to be a git repository(wie es sollte - Pull ist immer zum Abrufen von Fernbedienungen gedacht).
user1338062
3
Warum ist Git so verwirrend? Wir haben also 4 Repositories, richtig? Es gibt ein (1) Remote-Repository, (2) ein lokales Repository, (3) ein Staging-Repository, (4) ein Local-Remote, auch bekannt als Ursprung / Master? Warum sollte Git überhaupt das Repository Nr. 4 haben?
Mugen
3

git pull origin masterruft alle Änderungen aus dem Hauptzweig der Fernbedienung ab und führt sie in Ihrem lokalen Zweig zusammen. Wir verwenden im Allgemeinen nicht git pull origin / master. Wir können das Gleiche tun, indem git merge origin/masterwir alle Änderungen aus der "zwischengespeicherten Kopie" von zusammenführen Der Hauptzweig des Ursprungs in Ihren lokalen Zweig. In meinem Fall git pull origin/masterwird der Fehler ausgelöst .

Dhruvil Shah
quelle
1

git pull= git fetch+git merge origin/branch

git pullund git pull origin branchunterscheiden sich nur darin, dass letztere nur den Ursprung / Zweig und nicht alle Ursprünge / * "aktualisieren" git pull.

git pull origin/branch wird einfach nicht funktionieren, weil es versucht, eine zu tun git fetch origin/branch die ungültig ist.

Frage im Zusammenhang: Git Fetch + Git Merge Origin / Master vs Git Pull Origin / Master

user33276346
quelle