2010-01-06 10 views
8

Im Abschnitt in Upstream-Pulling ändert auf help.github's Forking a project heißt es:Warum "Master" in den Befehl `git fetch upstream master` aufnehmen?

Einige Zeit vergangen ist, hat sich die Upstream-Repo 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 einschließlich sie master in dem Befehl holen? Ich habe mir die git help fetch Informationen angesehen, aber ich verstehe nicht, was einschließlich master tut. Vielen Dank.

Antwort

6

das Ihnen erlaubt:

  • Update Ihrer lokale Version des Master-Upstream-Zweig nur (im Gegensatz als Aktualisierung alle Zweige der Upstream-Repo, die länger sein können, zu tun)
  • nein löst ein merge sofort (im Gegensatz zu dem Pull-Befehl gegen)

die git merge wird dann versuchen, fusionieren, dass die lokale Version des Upstream Master zu Ihrem Repo-Master-Zweig.

Also hier Master ist, für die fetch Befehl, eine refspec.

<refspec> 

Das Format eines <refspec> Parameter ist ein optionale plus +, die von der Quelle ref gefolgt <src>, mit einem Doppelpunkt:, <dst> vom Ziel ref gefolgt.

Der Remote-ref, die <src> Spiele geholt, und wenn <dst> nicht leere Zeichenkette, die lokale ref, die sie paßt ist pult <src> verwenden.
Wenn das optionale Plus + verwendet wird, wird der lokale Verweis aktualisiert, auch wenn dies nicht zu einer Schnellvorlaufaktualisierung führt.

Hier ist <dst> leer, daher wird der passende lokale Zweig (Ihr Master) aktualisiert.


Ohne Meister, das würde:

git fetch upstream 

Der obige Befehl kopiert alle Zweige von dem entfernten refs/heads/ Namespace und speichert sie auf den lokalen refs/remotes/upstream/ Namespace, es sei denn, die branch.<name>.fetch Option verwendet wird, um Geben Sie eine nicht standardmäßige refspec an.

Verwandte Themen