Warum "Master" in den Befehl "Git holt den Upstream Master" auf?
Frage
Im Bereich Verlagerungen in stromaufwärts gelegenen Veränderungen an help.github's Ein Projekt gib Es sagt aus:
Einige Zeit ist vergangen, das Upstream -Repo hat sich geändert und Sie möchten Ihre Gabel aktualisieren, bevor Sie einen neuen Patch einreichen. Es gibt zwei Möglichkeiten, dies zu tun:
$ git fetch upstream master
$ git merge upstream/master
Warum schließen sie ein? master
im Fetch -Befehl? Ich habe mir das angesehen git help fetch
Informationen, aber ich verstehe nicht, was einschließlich master
tut. Vielen Dank.
Lösung
Dadurch können Sie:
- Aktualisieren Sie Ihre lokale Version des Master -Upstream -Zweigs nur (im Gegensatz zur Aktualisierung alle Zweige des vorgelagerten Repo, was länger zu tun sein kann)
- Kein Abzug eine Zusammenführung sofort (im Gegensatz zum Pull -Befehl)
Das git merge
Versucht dann, diese lokale Version des Upstream -Meisters zu Ihrem Repo -Master -Zweig zu verschmelzen.
Also hier ist der Meister für die fetch
Befehl, ein RefSpec.
<refspec>
Das Format von a
<refspec>
Parameter ist ein optionales Plus +, gefolgt von der Quellref<src>
, gefolgt von einem Dickdarm:, gefolgt vom Zielref<dst>
.Der Remote -Schiedsrichter, der übereinstimmt
<src>
wird abgerufen und wenn<dst>
ist keine leere Zeichenfolge, der lokale Schiedsrichter, der übereinstimmt<src>
.
Wenn das optionale Plus+
Wird verwendet, wird der lokale Ref aktualisiert, auch wenn er nicht zu einem schnellen Update führt.
Hier, <dst>
ist leer, also wird der passende lokale Zweig (Ihr Master) aktualisiert.
Ohne Meister würde das geben:
git fetch upstream
Der obige Befehl kopiert alle Zweige aus der Fernbedienung
refs/heads/
Namespace und speichert sie im Einheimischenrefs/remotes/upstream/
Namespace, es sei denn, derbranch.<name>.fetch
Die Option wird verwendet, um einen nicht defekten Refc anzugeben.