Como listar os branches remotos no git

Neste artigo você vai aprender a como listar os branches remotos no git, utilizando apenas um simples comando

Resposta rápida: pra listar os branches remotos no git, rode git branch -r

Ele lista as branches de rastreamento remoto do teu repositório

Quer os locais e os remotos juntos? Use git branch -a

Só lembre que essa lista é um retrato da última comunicação com o servidor, então rode git fetch antes (ou git fetch –prune, pra sumir com o que já foi apagado no remoto)

listar os branches remotos no git capa

Fala programador(a), beleza? Bora aprender mais sobre branches com git!

O comando para verificar branches é o git branch, porém ele nos dá apenas os locais

Com uma flag adicional é capaz de mapear os branches remotos através deste comando também

Vamos utilizar a -r, sempre que você ver -algumacoisa é alguma flag sendo adicionada a um comando de git

Veja o comando completo:

git branch -r

Desta forma recebemos uma lista de branches, mas agora apenas os que são do repositório remoto

Diversos comandos podem ter seu resultado final alterado com base em alguma opção a mais adicionada a ele

E provavelmente você já usa algumas e nem se tocou 🙂

Quer aprender mais sobre git? Veja este curso gratuito:

Conclusão

Neste artigo você viu como listar os branches remotos no git

Utilizamos o comando git branch com a flag/opção -r

Que nos retorna uma lista dos branches remotos do nosso repositório, ou seja, branches que existem apenas no servidor

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias! Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias. O link acima contém um cupom de desconto para os cursos

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

H2: E se eu quiser ver os locais e os remotos juntos?

Tem hora que tu não quer só o que está no servidor, quer o mapa inteiro do repositório

Pra isso existe a opção -a (ou –all), que lista os branches locais e os remotos numa tacada só

[bloco de código] git branch -a

Na prática: -r te dá só o lado remoto, -a te dá os dois lados

Simples assim 🙂

H2: O que o git branch -r está te mostrando de verdade:

Aqui vai a parte que quase ninguém explica, e que muda tudo

O que o -r lista são as branches de rastreamento remoto (as famosas remote-tracking branches)

E elas NÃO são uma consulta ao vivo no servidor

"Peraí, como assim?"

São referências locais, guardadas no teu repositório, que você não move na mão

Quem move é o próprio Git, a cada comunicação de rede com o remoto

Ou seja: elas funcionam como um marcador de onde as branches do remoto estavam na última vez que teu Git conversou com o servidor

É por isso que o nome vem sempre no formato <remoto>/<branch>

Olha o origin/master, por exemplo: ele representa a branch master lá no remoto origin, como ela estava na última comunicação

Sacou por que às vezes a lista parece "errada"? Ela não está errada, ela está velha 😀

H2: A lista está desatualizada? Atualize antes de listar:

Se a lista está velha, a solução é fazer o Git conversar com o servidor de novo

Quem faz isso é o git fetch, ele é o comando que atualiza as branches de rastreamento remoto

[bloco de código] git fetch git branch -r

Rodou o fetch, aí sim o git branch -r reflete a última conexão com o remoto

Recomendo virar hábito: fetch primeiro, lista depois

H2: Apareceu um branch que já foi apagado no servidor?

Clássico: o pessoal deletou a branch lá no remoto, mas ela continua teimando na tua lista

De novo, é aquela referência local que ficou pra trás

Pra limpar, o git fetch aceita a opção –prune, que remove, antes de buscar, as referências de rastreamento remoto que deixaram de existir no remoto

[bloco de código] git fetch –prune

Se tu só quer a faxina, sem buscar novidade nenhuma, dá pra usar o git remote prune

[bloco de código] git remote prune origin

Ele é equivalente ao git fetch –prune, com a diferença de que nenhuma referência nova é buscada

Tome cuidado com as tags: elas não são podadas quando vieram pelo auto-follow padrão ou por –tags

Elas só entram na poda se vierem de um refspec explícito, e o –prune-tags é justamente o atalho pra fornecer esse refspec de tag

H2: Como ver mais detalhes de cada branch remoto:

A lista pura é meio seca, né?

Joga um -v junto e o Git passa a mostrar o sha1 e a linha de assunto do commit de cada branch

[bloco de código] git branch -r -v

E se tu der o v duas vezes (-vv), ele imprime também o nome da branch upstream e o caminho do worktree vinculado, quando existir

[bloco de código] git branch -vv

Muito massa pra bater o olho e saber quem está rastreando quem

H2: Como filtrar a lista de branches remotos:

Em repositório grande a lista vira um paredão, aí filtrar salva a vida

O git branch aceita um padrão (wildcard de shell) pra filtrar a listagem, mas tem uma pegadinha: com padrão é obrigatório usar o –list junto

[bloco de código] git branch -r –list ‘origin/feat*’

Se tu esquecer o –list, o comando pode ser interpretado como criação de branch

Já me ferrei uma vez por causa desse tipo de detalhe, então fica o aviso

H3: Filtrando por commit:

Dá pra restringir a lista olhando pro histórico também:

–contains mostra só as branches que contêm o commit citado

–merged mostra só as que já foram mescladas

–no-merged mostra só as que ainda não foram

[bloco de código] git branch -r –merged git branch -r –no-merged

Esse par aí é ouro na hora da faxina, pra saber o que já entrou e o que ainda está solto

H2: E se eu quiser consultar o servidor de verdade?

Como vimos, o -r mostra o retrato da última conexão

Quando tu precisa ir na fonte, existe o git ls-remote, que consulta o repositório remoto e exibe as referências disponíveis no formato <oid> TAB <ref>

[bloco de código] git ls-remote origin

Dá pra limitar a saída a refs/heads e refs/tags pelas opções do comando

Um detalhe importante de versão atual: o –heads virou sinônimo deprecated de –branches e pode ser removido no futuro, então prefira o –branches

[bloco de código] git ls-remote –branches origin

H3: Um panorama mais mastigado:

Se tu quer menos ID de commit e mais contexto, o git remote show é teu amigo

[bloco de código] git remote show origin

Ele mostra quais branches remotas do servidor você ainda não tem, quais você tem que já foram removidas do servidor e quais branches locais fazem merge automático no git pull

Topzera pra dar aquela conferida antes de um pull

H3: Ordenando e formatando a listagem:

As chaves de ordenação do git branch são as mesmas do git for-each-ref, então o que tu aprende num vale no outro

E se quiser montar uma saída sob medida com as refs remotas, o próprio git for-each-ref formata a listagem de referências, incluindo refs/remotes, com dados de rastreamento

Além de %(upstream), %(upstream:remotename) e %(upstream:remoteref), que trazem o remoto e a ref rastreada

Dá pra montar um relatório bem completão do estado das branches remotas com isso

Inserir o bloco de FAQ (H2 "Perguntas frequentes sobre listar branches remotos no git") com as perguntas e respostas do campo geo.faq, cada pergunta como H3

E fomos além do básico: vimos o -a pra listar tudo junto, o git fetch pra atualizar a lista, o –prune pra limpar branch que já morreu no servidor, os filtros com –list, –merged e –no-merged, e o git ls-remote quando tu precisa perguntar direto pro servidor

Tudo isso vale nas versões atuais do Git (a estável mais recente é a 2.55.0)

Não há material próprio autorizado sobre este tema (o vídeo disponível trata de uma skill de pesquisa do GitHub, sem relação com listagem de branches), então nenhum bloco de primeira mão foi escrito e nada de "testamos" foi inserido no post. Pra ganhar primeira mão real aqui, o que precisaria ser gravado/registrado: (1) saída real de git branch -r antes e depois de um git fetch num repositório com branch criada por outra pessoa, mostrando a lista desatualizada e depois atualizada; (2) saída real de git branch -r em repositório com branch já deletada no remoto, seguida de git fetch –prune, provando o sumiço da referência; (3) comparação lado a lado da saída de git branch -r e de git ls-remote origin no mesmo repositório e no mesmo instante, evidenciando cache local versus consulta ao servidor; (4) print de um git branch -r –list sem o –list dando comportamento inesperado. Com essas capturas, o post ganha prova visual que nenhuma resposta gerada por IA tem.

Perguntas frequentes

Qual o comando para listar os branches remotos no git?

É o git branch -r

A opção -r faz o git branch listar as branches de rastreamento remoto, em vez das locais

Qual a diferença entre git branch -r e git branch -a?

O -r lista só as branches de rastreamento remoto

Já o -a (ou –all) lista as locais e as remotas juntas, na mesma saída

Por que um branch novo do meu colega não aparece no git branch -r?

Porque as branches de rastreamento remoto são referências locais, atualizadas pelo Git a cada comunicação de rede, e não uma consulta ao vivo no servidor

Quem atualiza essas referências é o git fetch, então rode o fetch antes de listar de novo

Como remover da lista os branches remotos que já foram apagados no servidor?

Use git fetch –prune, que remove, antes de buscar, as referências de rastreamento remoto que deixaram de existir no remoto

Se você quer só a limpeza, sem buscar nada novo, use git remote prune origin, que é equivalente ao git fetch –prune exceto por não buscar referências novas

Como filtrar os branches remotos por nome?

O git branch aceita um padrão de wildcard de shell, mas com padrão é preciso usar o –list junto

Exemplo: git branch -r –list ‘origin/feat*’

Sem o –list, o comando pode acabar sendo interpretado como criação de branch

Como saber quais branches remotos já foram mesclados?

Use os filtros por commit do git branch: –merged mostra só as branches já mescladas e –no-merged só as não mescladas

Tem ainda o –contains, que mostra apenas as branches que contêm o commit citado

Como listar os branches direto do servidor, sem depender do cache local?

Use o git ls-remote, que consulta o repositório remoto e exibe as referências disponíveis no formato <oid> TAB <ref>

Dá pra limitar a saída a refs/heads e refs/tags pelas opções do comando, lembrando que o –heads virou sinônimo deprecated de –branches

Outra opção é o git remote show origin, que mostra quais branches remotas do servidor você ainda não tem, quais você tem que já foram removidas do servidor e quais branches locais fazem merge automático no git pull

Como ver o commit e o upstream de cada branch na listagem?

Com o -v o git branch mostra o sha1 e a linha de assunto do commit de cada branch

Se você der duas vezes (-vv), ele imprime também o caminho do worktree vinculado, quando houver, e o nome da branch upstream

Leia também

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares