Gostaria de saber se existe uma maneira de saber qual branch local está rastreando qual branch remoto no Git.
Estou usando um servidor remoto, chamado "origem".
Gostaria de saber se existe uma maneira de saber qual branch local está rastreando qual branch remoto no Git.
Estou usando um servidor remoto, chamado "origem".
Usando o exemplo da minha cópia do Puppet retirada do repositório Git upstream no Github.com...
Então, se eu fosse executar o seguinte:
E, finalmente, execute novamente o
git remote show origin
comando novamente, verei o seguinte na parte inferior:Para todos os ramos:
Apenas para filiais locais:
Apenas para filiais remotas:
mostra todas as ramificações, bem como o nome da ramificação upstream.
Jeremy Bouse ilustra como
git remote show
exibe informações de rastreamento . Isso deve ser suficiente se você quiser apenas a informação para consumo humano.Se você planeja usar as informações em um contexto automatizado (por exemplo, um script), deve usar o nível inferior (“encanamento”)
git for-each-ref
.O token
git for-each-ref
aprendeu no Git 1.6.3 . Com versões anteriores do Git, você terá que extrair as informações de rastreamento com e (provavelmente usando para construir os comandos para cada nome de branch local).%(upstream)
git config branch.<name>.remote
git config branch.<name>.merge
git for-each-ref
Para uma ramificação específica, você pode usar
git rev-parse
com o sufixo@{u}
ou no nome da ramificação, por exemplo:@{upstream}
... ou para a forma abreviada, adicione
--abbrev-ref
Você geralmente pode usar a
branch@{upstream}
sintaxe onde quer que um commit seja esperado.Eu uso o seguinte script de shell (chamado
git-tracks
) para mostrar a ramificação remota que é rastreada pela ramificação atual:Isso também poderia usar o mencionado
git for-each-ref
, mas achei o acesso direto um pouco mais simples do que filtrar a saída para o branch atual..git/config
arquivo também fornecerá as informações do ramo de rastreamento comomostra exatamente o que você pede. Ele mostra as ramificações locais junto com a ramificação remota correspondente que estão rastreando.
Adicione estas runas à
[alias]
seção do seu arquivo .gitconfig:Eu precisava encontrar a ramificação remota correspondente (se houver) para cada ramificação local dentro de um loop que estava atuando em uma lista das ramificações locais. Acabei usando o seguinte:
Isso não produzirá nada (uma string vazia) para ramificações locais que não tenham uma ramificação remota correspondente ("someremote/somebranch").
Tente
git branch
com as opções :Caso contrário, examine seu
.git/config
.