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.

War es hilfreich?

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 Einheimischen refs/remotes/upstream/ Namespace, es sei denn, der branch.<name>.fetch Die Option wird verwendet, um einen nicht defekten Refc anzugeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top