Git: Como listar apenas filiais locais?


935

git branch -a mostra ramificações remotas e locais.

git branch -r mostra ramificações remotas.

Existe uma maneira de listar apenas os ramos locais?

Respostas:


1444

Apenas git branchsem opções.

Na página de manual:

Sem argumentos, as ramificações existentes são listadas e a ramificação atual será destacada com um asterisco.


25
Eu esperava encontrar uma maneira de listar ramificações locais que não possuem ramificações remotas correspondentes.
Steve Guindaste

5
Não completamente, mas respostas à minha pergunta Como faço para listar ramificações locais que não possuem ramificação remota fornecem alguma ajuda.
Steve guindaste

3
@ c00kiemon5ter Eu amo como você encontrou uma maneira de conseguir vários pontos de qualquer maneira! Tão engraçado.
Abrão

4
como é esta a resposta certa para o que foi solicitado ("... listar * apenas os ramos locais ...") ???
Wagner da Silva

7
@ gr4viton: Nos dialetos em inglês que eu conheço, "listar apenas filiais locais" geralmente analisa como "listar apenas as filiais locais". (Para dizer "lista os ramos que são apenas local", eu diria "lista local somente ramos".)
Mathieu K.

221

apenas o comando simples

git branch

5
Esta resposta tem exatamente o mesmo horário que a resposta aceita. Resposta aceito deve estar à frente na parte milissegundo :)
RBT

4
@RBT Passe o mouse sobre os tempos. Essa resposta foi 9 segundos mais rápida.
Kevin Workman

1
c00kiemon5ter merece o crédito pela resposta!
skydev

75

git branch -a- todos os galhos.

git branch -r- Apenas ramificações remotas .

git branch -l ou git branch- Somente filiais locais .


Para mim, a formatação desta resposta sugere a -lposição --local, enquanto é realmente --list. Eu sugeriria removê-lo para evitar essa confusão - tecnicamente todos os comandos nesta resposta poderiam usar -le eles ainda retornariam os mesmos resultados.
Thibaud Colas

34

Se o asterisco principal for um problema, eu canalizo o git branchseguinte

git branch | awk -F ' +' '! /\(no branch\)/ {print $2}'

Isso também elimina a linha '(sem ramificação)' que aparece quando você desanexou a cabeça.


1
Teve que modificar isso para git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'a versão 1.9.1 do git.
iurii

6
cut -c 3-é uma opção mais fácil
Alexey

33

Uma das maneiras mais simples de fazer isso é

git for-each-ref --format='%(refname:short)' refs/heads/

Isso funciona perfeitamente para scripts também.


12

Veja como listar ramificações locais que não têm uma ramificação remota na origem com o mesmo nome:

git branch | sed 's|* |  |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote

3
Bom, também oneliner: comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
gr4viton 22/11

10

Outra maneira de obter uma lista apenas do ramo local é:

git branch -a | grep -v 'remotes'

4

Há uma ótima resposta para uma postagem sobre como excluir apenas ramificações locais. Nele, o sujeito cria um comando para listar as ramificações locais:

git branch -vv | cut -c 3- | awk '$3 !~/\[/ { print $1 }'

A resposta tem uma ótima explicação sobre como esse comando foi derivado, então eu sugiro que você leia esse post.


Obrigado por vincular a resposta. Eu precisava de um algo para listar ramos locais que NÃO rastreiam um controle remoto. Este é o único que faz o trabalho.
JuroOravec 26/04

2

Para complementar a resposta de @ gertvdijk - estou adicionando algumas capturas de tela para ajudar alguém rapidamente.

No meu shell bash git

ramo git

O comando sem nenhum parâmetro mostra todos os meus ramos locais. O ramo atual que está atualmente com check-out é mostrado em cores diferentes (verde) junto com um prefixo de asterisco (*) que é realmente intuitivo.

insira a descrição da imagem aqui

Quando você tenta ver todas as ramificações, incluindo as ramificações remotas usando

git branch -a

comando, as ramificações remotas que ainda não foram verificadas são mostradas em vermelho:

insira a descrição da imagem aqui


1
Mil palavras das quais não se pode copiar?
Tony Adams

2
@TonyAdams Sinto muito se estou perdendo alguma coisa, mas os dois comandos cuja saída eu mostrei nas imagens foram mencionados em fundo cinza (formatação de código) na postagem. Não importa, eu melhorei a formatação da postagem para torná-la ainda mais legível. Agradecemos seus comentários.
RBT
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.