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?

munyengm
fonte

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.

gertvdijk
fonte
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
c00kiemon5ter
fonte
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 .

shortduck
fonte
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.

John Marter
fonte
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.

Victor Yarema
fonte
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
Shnatsel
fonte
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'
jlsanchezr
fonte
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.

Samwar
fonte
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

RBT
fonte
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