Eu crio uma nova ramificação no Git:
git branch my_branch
Empurre-o:
git push origin my_branch
Agora digamos que alguém fez algumas alterações no servidor e eu quero retirar origin/my_branch. Eu faço:
git pull
Mas eu entendo:
You asked me to pull without telling me which branch you
want to merge with, and 'branch.my_branch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "my_branch"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
Aprendi que posso fazê-lo funcionar com:
git branch --set-upstream my_branch origin/my_branch
Mas por que preciso fazer isso para cada ramo que eu criar? Não é óbvio que, se eu my_branchentrar origin/my_branch, eu gostaria de origin/my_branchentrar my_branch? Como posso tornar esse comportamento padrão?
--set-upstreamopção está obsoleta. Você deve usar --trackou em --set-upstream-tovez disso.
--set-upstreamfor descontinuado, talvez os devs git devam removê-lo da mensagem de ajuda que é exibida quando você executa git pushsem opções e sem o montante configurado.
git branch --set-upstreamestá obsoleto. git push --set-upstreamnão é.
branch.autosetupmergesignifica que a configuração upstream para uma nova ramificação é definida automaticamente somente ao criar uma ramificação a partir de uma ramificação de rastreamento remoto (por exemplo<remote-name>/<branch-name>) (consulte git-config (1) ). Você provavelmente está criando suas ramificações a partir de ramificações locais existentes. Se você estiver efetivamente ramificando diretamente da ponta de uma ramificação remota (apesar de estar em uma ramificação local), poderá usargit branch my_branch <remote-name>/<branch-name>para definir automaticamente a configuração upstream.