Was macht '--set-upstream'?

327

Was macht git --set-upstream?

Ich habe versucht, es zu verstehen, indem ich das Git-Handbuch gelesen habe , aber ich habe es nicht ganz verstanden.

Евгений Масленков
quelle
13
Es gibt eine neue Option, --set-upstream-todie aufgrund der Verwirrungen (IIRC) bei der Einrichtung eingeführt wurde.
Philip Oakley

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>
TheCodeArtist
quelle
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 .

Wille
quelle
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>>

Turbut Alin
quelle