Was macht '--set-upstream'?


Antworten:


411
git branch --set-upstream <remote-branch>

Legt den Standard-Remote-Zweig für den aktuellen lokalen Zweig fest.

Jeder zukünftige git pullBefehl (mit ausgechecktem aktuellen lokalen Zweig)
versucht, Commits von der <remote-branch>in den aktuellen lokalen Zweig einzubringen.


Eine Möglichkeit, eine explizite Eingabe zu vermeiden, --set-upstreambesteht darin, das Kurzflag -uwie folgt zu verwenden:

git push -u origin local-branch

Dadurch wird die Upstream-Zuordnung für zukünftige Push / Pull-Versuche automatisch festgelegt.
Weitere Informationen finden Sie in dieser detaillierten Erklärung zu vorgelagerten Zweigen und zur Nachverfolgung .


Um Verwirrung zu vermeiden, lehnen neuere Versionen von gitdiese etwas mehrdeutige --set-upstreamOption zugunsten einer ausführlicheren --set-upstream-toOption mit identischer Syntax und identischem Verhalten ab

git branch --set-upstream-to <origin/remote-branch>

7
Das Flag --set-upstream ist veraltet und wird entfernt. Erwägen Sie die Verwendung von --track oder --set-upstream-to
Rohit Singh Sengar am

1
git push -u origin local-branchWas originrepräsentiert der in diesem Befehl ? Gibt es einen Fall, in dem ich etwas anderes als originnach dem -ueingeben würde ?
John Henckel

2
@JohnHenckel originbezieht sich auf das Remote-Git-Repository, aus dem geklont wurde. Es kann mehrere Remote-Git-Repositorys geben . In einem solchen Fall originkann durch den richtigen Namen der gewünschten Fernbedienung ersetzt werden, auf die man sich beziehen möchte.
TheCodeArtist

tun eine git remote -vIhrer Fernbedienungen, die Standard zu finden , ist originin der Regel
xploreraj

39

Wenn Sie auf eine Fernbedienung drücken und das --set-upstreamFlag git verwenden, wird der Zweig, auf den Sie drücken, als Fernverfolgungszweig des Zweigs festgelegt, den Sie verschieben.

Hinzufügen eines Remote - Tracking - Zweig bedeutet , dass git dann weiß , was Sie tun möchten , wenn Sie git fetch, git pulloder git pushin Zukunft. Es wird davon ausgegangen, dass Sie den lokalen Zweig und den Remote-Zweig, den es verfolgt, synchron halten möchten, und es werden die entsprechenden Maßnahmen ergriffen, um dies zu erreichen.

Sie könnten das gleiche mit git branch --set-upstream-tooder erreichen git checkout --track. Weitere Informationen finden Sie auf den Git-Hilfeseiten zum Verfolgen von Zweigen .


Wenn ich mit -t auschecke, wird der Upstream zum Schieben und nur zum Ziehen eingestellt.
Jim

8

git branch --set-upstream <<origin/branch>> wird offiziell nicht mehr unterstützt und ersetzt durch git branch --set-upstream-to <<origin/branch>>

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.