Se você não quiser redefinir a "configuração upstream" de sua filial local, poderá usar isto:
git pull remote1 "$(git rev-parse --symbolic-full-name HEAD)"
Ele provavelmente fará coisas inesperadas se seu HEAD local for separado.
Você pode empacotá-lo como um alias do Git para facilitar a digitação (embora ainda seja necessário distribuir o alias para todos os usuários):
git config --global alias.pullcb \
'!sh -c '\''git pull "$1" "$(git rev-parse --symbolic-full-name HEAD)"'\'' -'
Use o alias como este:
git pullcb remote1
Eu diria que esse tipo de relação de ramificação (precisa puxar facilmente da mesma ramificação em qualquer um dos vários controles remotos) não é facilmente configurável porque raramente é útil quando a maioria do trabalho é feito em ramos tópicos .
Por outro lado, se o "novo controle remoto" for a nova fonte primária de upstream para sua filial local, você deve considerar atualizar a "configuração upstream" de sua filial local para poder simplesmente usar git pull
(sem especificar um nome remoto).
Você pode verificar a configuração upstream de uma ramificação no Git 1.7.0 e posterior 1 com
git rev-parse --symbolic-full-name my-branch@{upstream}
Você pode atualizar a configuração upstream no Git 1.7.0 e posterior 2 com
git branch --set-upstream my-branch some-remote/their-branch
Uma vez que sua filial tenha a configuração apropriada do upstream, você pode simplesmente usar git pull
para extrair do "ramo upstream" da filial atual.
Por fim, a configuração upstream de uma ramificação é controlada pelas variáveis de configuração branch.<name>.remote
e branch.<name>.merge
(consulte git-config (1) ). As opções --track
e --no-track
de git branch
e git checkout
pode ser usado para controlar se essas variáveis são definidas quando uma ramificação é criada. A variável de configuração branch.autoSetupMerge
controla o comportamento padrão (quando nem --track
, nem --no-track
são fornecidos); o padrão é criar a configuração upstream para ramificações criadas a partir de ramificações de rastreamento remoto. Assim, os seguintes comandos criam a nova ramificação local “my-branch” e a configuram para rastrear a ramificação “their-branch” do remoto “some-remote”:
git branch my-branch some-remote/their-branch
git checkout -b my-branch some-remote/their-branch
1 Para as versões do Git anteriores a 1.7.0, você pode verificar a configuração upstream para “my-branch” desta forma:
git config branch.my-branch remote && git config branch.my-branch.merge
Veja git-config (1) para descrições dos valores.
Você também pode inspecionar manualmente o arquivo .git/config
.
2 Para as versões do Git anteriores a 1.7.0, você pode alterar a configuração upstream para "my-branch" como esta:
git config branch.my-branch.remote some-remote &&
git config branch.my-branch.merge refs/heads/their-branch
Veja git-config (1) para descrições dos valores.
Você também pode editar manualmente o arquivo .git/config
( git config -e
no Git 1.6.3 e posterior).