Cosa fa '--set-upstream'?


Risposte:


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

imposta il ramo remoto predefinito per il ramo locale corrente.

Qualsiasi git pullcomando futuro (con il ramo locale corrente estratto),
tenterà di portare commit dal <remote-branch>ramo locale corrente.


Un modo per evitare di dover digitare esplicitamente --set-upstreamè usare il suo flag di stenografia -ucome segue:

git push -u origin local-branch

Ciò imposta automaticamente l'associazione a monte per eventuali futuri tentativi push / pull.
Per ulteriori dettagli, consulta questa spiegazione dettagliata sulle filiali e il monitoraggio a monte .


Per evitare confusione, le versioni recenti di gitdeprecano questa --set-upstreamopzione alquanto ambigua a favore di --set-upstream-toun'opzione più dettagliata con sintassi e comportamento identici

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

7
Il flag --set-upstream è obsoleto e verrà rimosso. Prendi in considerazione l'uso di --track o --set-upstream-to
Rohit Singh Sengar

1
in questo comando git push -u origin local-branchcosa originrappresenta? C'è un caso in cui scriverei qualcosa di diverso da origindopo il -u?
John Henckel,

2
@JohnHenckel si originriferisce al repository git remoto da cui è stato usato il clone. Possono esserci più repository git remoti . In tal caso, originpuò essere sostituito con il nome proprio del telecomando desiderato a cui si desidera fare riferimento.
TheCodeArtist

fare un git remote -vper trovare i telecomandi, quello predefinito è di originsolito
xploreraj

39

Quando si preme su un telecomando e si utilizza il --set-upstreamflag git, imposta il ramo su cui si sta spingendo come ramo di rilevamento remoto del ramo che si sta spingendo.

L'aggiunta di un monitoraggio a distanza tramite filiali che git sa allora che cosa si vuole fare quando si git fetch, git pullogit push in futuro. Si presume che si desideri mantenere sincronizzati il ​​ramo locale e il ramo remoto che sta monitorando e fa la cosa appropriata per raggiungere questo obiettivo.

Puoi ottenere la stessa cosa con git branch --set-upstream-too git checkout --track. Consulta le pagine della guida di git sui rami di tracciamento per ulteriori informazioni.


Quando eseguo il checkout con -t, imposta l'upstream per spingere, solo per tirare.
Jim,

8

git branch --set-upstream <<origin/branch>> non è più ufficialmente supportato ed è sostituito da git branch --set-upstream-to <<origin/branch>>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.