Warum 'master' in den Befehl 'git fetch upstream master' aufnehmen?

8

Im Abschnitt Einziehen von Upstream-Änderungen auf help.github Forking a project heißt es:

  

Nach einiger Zeit hat sich der Upstream-Repo geändert und Sie möchten Ihre Gabel aktualisieren, bevor Sie einen neuen Patch abschicken. Es gibt zwei Möglichkeiten, dies zu tun:

%Vor%

Warum enthalten sie master im Befehl fetch? Ich habe mir die Informationen zu git help fetch angeschaut, aber ich verstehe nicht, was include master tut. Danke.

    
Matthew Rankin 06.01.2010, 16:41
quelle

1 Antwort

6

Damit können Sie:

  • Aktualisieren Sie nur Ihre lokale Version des übergeordneten Upstream-Zweigs (im Gegensatz zu alle Zweigen des Upstream-Repos, was länger dauern kann)
  • kein Trigger sofort (im Gegensatz zum Pull-Befehl)

git merge versucht dann, diese lokale Version des Upstream-Masters mit Ihrem Repomaster-Zweig zu verbinden.

Hier ist Master also für den Befehl fetch eine Refspec.

%Vor%
  

Das Format eines Parameters <refspec> ist ein optionales Plus +, gefolgt von der Quelle ref <src> , gefolgt von einem Doppelpunkt:, gefolgt von der Zielangabe ref <dst> .

     

Die Remote-Referenz, die <src> entspricht, wird abgerufen, und wenn <dst> keine leere Zeichenfolge ist, wird die lokale Referenz, die dieser entspricht, mit <src> weitergeleitet.
  Wenn das optionale Plus + verwendet wird, wird der lokale Verweis aktualisiert, auch wenn dies nicht zu einer Schnellvorlauf-Aktualisierung führt.

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

Ohne Master würde das ergeben:

%Vor%
  

Der obige Befehl kopiert alle Zweige aus dem Remote-Namespace refs/heads/ und speichert sie im lokalen refs/remotes/upstream/ -Namespace, es sei denn, die Option branch.<name>.fetch wird verwendet, um eine nicht standardmäßige refspec anzugeben.

    
VonC 06.01.2010, 16:47
quelle

Tags und Links