O que '--set-upstream' faz?


Respostas:


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

define a ramificação remota padrão para a ramificação local atual.

Qualquer git pullcomando futuro (com a filial local atual com check-out)
tentará trazer confirmações da <remote-branch>filial local atual.


Uma maneira de evitar a digitação explícita --set-upstreamé usar o sinalizador abreviado da -useguinte maneira:

git push -u origin local-branch

Isso define a associação upstream para qualquer futura tentativa de push / pull automaticamente.
Para mais detalhes, confira esta explicação detalhada sobre ramificações e rastreamento upstream .


Para evitar confusão, as versões recentes de gitdescontinuam essa --set-upstreamopção um tanto ambígua em favor de uma --set-upstream-toopção mais detalhada com sintaxe e comportamento idênticos

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

7
O sinalizador --set-upstream está obsoleto e será removido. Considere o uso de --track ou --set-montante-to
Rohit Singh Sengar

1
neste comando git push -u origin local-brancho que originrepresenta? Existe algum caso em que eu digite algo diferente de origindepois do -u?
John Henckel

2
@JohnHenckel originrefere-se ao repositório remoto do git que foi usado para clonar. Pode haver vários repositórios git remotos . Nesse caso, originpode ser substituído pelo nome apropriado do controle remoto desejado ao qual se deseja se referir.
TheCodeArtist

fazer git remote -vpara encontrar seus controles remotos, o padrão é originnormalmente
xploreraj

39

Quando você envia para um controle remoto e usa o --set-upstreamsinalizador, o git define o ramo para o qual você está empurrando como o ramo de rastreamento remoto do ramo que está sendo enviado.

Adicionando um meio de filiais de monitoramento remoto que git então sabe o que você quer fazer quando você git fetch, git pullou git pushno futuro. Ele pressupõe que você deseja manter a filial local e a filial remota que está rastreando em sincronia e faz o necessário para conseguir isso.

Você pode conseguir a mesma coisa com git branch --set-upstream-toou git checkout --track. Veja as páginas de ajuda do git sobre o rastreamento de ramos para obter mais informações.


Quando eu faço check-out com -t, ele define o upstream para empurrar, apenas para puxar.
22419 Jim

8

git branch --set-upstream <<origin/branch>> oficialmente não é mais suportado e é substituído por git branch --set-upstream-to <<origin/branch>>

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.