Quando o Git atualiza a lista de ramificações remotas?


496

Usar git branch --allmostra todas as ramificações remotas e locais . Quando o Git atualiza esta lista?

Ao puxar / empurrar? E como atualizá-lo usando o Git Bash ?


5
Como uma nota, git ls-remotepode ser interessante aqui.
jthill

Respostas:


1221

Para atualizar a lista local de ramificações remotas:

git remote update origin --prune

Para mostrar todas as ramificações locais e remotas que o Git (local) conhece

git branch -a

143
git remote update origin --pruneé o que eu estava procurando thx
WonderLand

6
Sobre a diferença entre esta resposta, que utiliza git remote update, e a resposta aceita, que usa git fetch, veja aqui
The Red Pea

6
Essa é a resposta correta. git fetchnão removeu meu cache local de ramificações remotas. Só --prunefoi capaz de limpar tudo.
Felipe Alvarez

23
Você pode ter git automaticamente fazer isso comgit config remote.origin.prune true
kjhf

8
git remote prune origintem o mesmo efeito e você digita menos.
Dvin

27

Eu acredito que se você correr git branch --all Bash, a lista de ramificações remotas e locais que você vê refletirá o que o seu Git local "sabe" sobre no momento em que você executa o comando. Como o seu Git está sempre atualizado com relação às ramificações locais em seu sistema, a lista de ramificações locais sempre será precisa.

No entanto, para ramificações remotas, isso não precisa ser o caso. Seu Git local conhece apenas ramificações remotas que ele viu na última busca (ou pull). Portanto, é possível que você execute git branch --alle não veja uma nova ramificação remota que apareceu após a última vez que você buscou ou puxou.

Para garantir que sua lista de filiais local e remota esteja atualizada, faça isso git fetch antes de executar git branch --all.

Para mais informações, as ramificações "remotas" que aparecem quando você executa git branch --allnão são realmente remotas; eles são realmente locais. Por exemplo, suponha que haja uma ramificação no controle remoto featureque você puxou pelo menos uma vez no Git local. Você verá origin/featurelistado como um ramo quando executar git branch --all. Mas esse ramo é realmente um ramo Git local . Quando você faz git fetch originisso, esse ramo de rastreamento é atualizado com novas alterações do controle remoto. É por isso que seu estado local pode ficar obsoleto, porque pode haver novas ramificações remotas ou suas ramificações de rastreamento podem ficar obsoletas.


4
Sim, git fetchconseguiu.
BendEg

14
Nota aos votantes negativos: se você acha que as informações corretas com uma explicação bem-intencionada merecem voto negativo, pelo menos fale e deixe um comentário.
Tim Biegeleisen

3
git fetchnão funciona para mim, preciso adicionar --prune. Btw, eu não sou ofensor;)
Deqing

3
git fetchnão remove ramificações remotas excluídas. Provavelmente é por isso que algumas pessoas votaram
mal

@ JérômeMEVEL É uma maravilha para mim que a resposta aceita agora tenha 1000 votos positivos. Isso é loucura ... gostaria de ter esse tipo de exposição :-)
Tim Biegeleisen

24

O OP não solicitou a limpeza de todos os controles remotos, e sim de todas as ramificações do controle remoto padrão.

Então git fetch --pruneé o que deve ser usado.

A configuração git config remote.origin.prune truetorna --pruneautomática. Nesse caso git fetch, também removerá ramificações remotas obsoletas da cópia local. Consulte também Poda automática com o Git buscar ou puxar .

Observe que isso não limpa as ramificações locais que não estão mais rastreando uma ramificação remota. Consulte Como remover ramificações de rastreamento local que não existem mais no controle remoto para isso.


Para torná-lo um pouco mais curtogit fetch -p
Michael Warner

2

Use git fetchpara buscar todas as ramificações criadas mais recentes.


1
git fetchnão mudou nada para mim com o git 2.17.1. Qual versão e opções você está usando?
PointedEars

2
Você precisa disso --pruneou git config remote.NAME.prune truepara resolver a questão do OP #
Oliver Oliver

-1

Se você estiver usando o Eclipse e quiser ver novas ramificações do upstream;

Na perspectiva do Git, clique com o botão direito do mouse em um repositório do Git e escolha "Buscar do Upstream". Isso busca novas ramificações remotas.


-8

Se você estiver usando o Eclipse,

  1. Abra "Repositórios Git"
  2. Encontre seu repositório.
  3. Abra "Ramos" e depois "Rastreamento remoto".

Git

Todos deveriam estar lá. Clique com o botão direito e "finalize a compra".


Como isso responde à pergunta? - "Quando o Git atualiza a lista de ramificações remotas?"
Peter Mortensen

Quando eu queria atualizar minhas filiais locais em eclipse, pesquisei no Google e isso me levou até aqui. Este post realmente ajudou algumas pessoas, pois teve alguns votos positivos. Talvez eu tenha entendido mal a pergunta. Para mim, o Eclipse IS Git (a interface para ele). Desculpe por ofender a todos!
markthegrea
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.