Mein üblicher Workflow bei der Arbeit mit Git ist ungefähr so:
- Erstellen Sie ein lokales Repository
- Arbeiten Sie in diesem Repository, fügen Sie Dateien hinzu / ändern Sie sie usw.
- Entscheiden Sie, dass ich einen zentralen Remotestandort für das Repository haben möchte, und erstellen Sie einen
- Übertragen Sie alle Commits von meinem lokalen Repository in dieses neue Remote-Repository
Jetzt möchte ich jedoch in der Lage sein, dieses Remote-Repository zu push
und pull
von diesem zu entfernen, ohne angeben zu müssen, wohin ich drücke oder von wo ich ziehe. Ich möchte, dass mein lokaler Master den Remote-Master verfolgt.
Der richtige Weg, dies zu tun, ist mir nicht klar, und ich konnte es nicht aus der Dokumentation ermitteln, obwohl es eigentlich nicht mehr als ein Befehl sein sollte.
Da dies nur einmal pro Repository durchgeführt wird, habe ich im Allgemeinen eine von zwei einfachen, aber hackigen Lösungen verwendet:
- wird verwendet
git clone
, um ein neues lokales Repository zu erstellen und das alte zu löschen. Nach dem Klonen von Git wird das neue Repository eingerichtet, um den Ursprung zu verfolgen. - manuell bearbeitetes .git / config, um den Master-Track-Ursprung herzustellen.
Ich denke, ich sollte in der Lage sein, einen Befehl auszuführen, wahrscheinlich eine Form, git remote
um ein vorhandenes Repository so einzurichten, dass der Master einen Remote-Master verfolgt. Kann mir jemand sagen, was dieser Befehl ist?
Antworten:
Verwenden Sie das Setup-Upstream-Argument:
Wenn Sie den obigen Befehl ausführen, wird Ihre .git / config-Datei korrekt aktualisiert und sogar mit dieser Ausgabe überprüft:
"Branch-Local-Branch-Name eingerichtet, um den Remote-Branch-Remote-Branch-Namen vom Ursprung zu verfolgen."
EDIT: Wie Martijn sagte: "In Version Git v1.8.0 ist --set-upstream veraltet. Verwenden Sie stattdessen --set-upstream-to."
Sehen Sie diese für weitere Informationen.
quelle
--set-upstream
ist veraltet. Verwenden Sie--set-upstream-to
stattdessen.git remote show <remote>
zu sehen, welche Zweige von Ihren lokalen Zweigen verfolgt werdengit push -u
set upstream
die Zuordnungen nicht ein, ohne tatsächlich Code aufzurufen? push zwingt Sie, Code zu pushen, um Zuordnungen zu erstellen. Vielleicht haben Sie noch keinen Code, möchten aber eine Zuordnung erstellen?git help remote
sollte Ihnen zeigen, was Sie wissen müssen. Ich denke was du willst istSie können .git / config auch manuell bearbeiten, um diese einzurichten.
quelle
Sie können dies auch verwenden, wenn Sie einen neuen lokalen Zweig erstellen möchten, um einen Remote-Zweig zu verfolgen:
oder noch besser:
quelle
Auf neueren Versionen von Git können Sie verwenden
quelle
git branch --set-upstream BRANCH fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.
The --set-upstream flag is deprecated and will be removed.
git branch master --set-upstream-to myupstream/master
quelle
Drei Jahre später (siehe was ich dort gemacht habe :-)) habe ich versucht, mit Git Bash einen nicht verfolgten Zweig zu ziehen und habe ihn erhalten
If you wish to set tracking information for this branch you can do so with:
Folgendes hat erreicht, was ich brauchte:
$ git branch --set-upstream-to=origin/develop develop Branch 'develop' set up to track remote branch 'develop' from 'origin'.
quelle
Verwenden Sie diesen Befehl:
quelle