Git: Jak wyświetlić tylko lokalne oddziały?


935

git branch -a pokazuje oddziały zdalne i lokalne.

git branch -r pokazuje odległe gałęzie.

Czy istnieje sposób na wylistowanie tylko lokalnych oddziałów?

Odpowiedzi:


1443

Po prostu git branchbez opcji.

Z strony podręcznika:

Bez argumentów, istniejące gałęzie są wymienione, a bieżąca gałąź zostanie podświetlona gwiazdką.


24
Miałem nadzieję znaleźć sposób, aby wyświetlić listę oddziałów lokalnych, które nie mają odpowiadających oddziałów zdalnych.
Steve Crane

5
Nie do końca, ale odpowiedzi na moje pytanie Jak wyświetlić listę oddziałów lokalnych, które nie mają oddziałów zdalnych, oferują pomoc.
Steve Crane

3
@ c00kiemon5ter Uwielbiam sposób, w jaki znalazłeś sposób na zdobycie wielu punktów! Bardzo śmieszne.
Abram

4
jak to jest poprawna odpowiedź na to, o co pytano („... aby wymienić * tylko lokalne oddziały ...”) ???
Wagner da Silva

7
@ gr4viton: W dialektach języka angielskiego, które znam, „lista tylko gałęzi lokalnych” zwykle jest analizowana jako „lista tylko tych gałęzi, które są lokalne”. (Aby powiedzieć „wymień te gałęzie, które są tylko lokalne”, powiedziałbym „wymień tylko oddziały lokalne”.)
Mathieu K.,

221

tylko proste polecenie

git branch

5
Ta odpowiedź ma dokładnie ten sam znacznik czasu, co odpowiedź zaakceptowana. Zaakceptowana odpowiedź musi być udzielona w części milisekundowej :)
RBT

4
@RBT Mouseover razy. Ta odpowiedź była szybsza o 9 sekund.
Kevin Workman

1
c00kiemon5ter zasługuje na uznanie za odpowiedź!
skydev

75

git branch -a- Wszystkie oddziały.

git branch -r- Tylko zdalne oddziały.

git branch -l lub git branch- Tylko oddziały lokalne .


Mi formatowanie Ta odpowiedź sugeruje się -lpodpórek --local, podczas gdy w rzeczywistości --list. Sugerowałbym usunięcie go, aby uniknąć tego zamieszania - technicznie wszystkie polecenia w tej odpowiedzi mogłyby się przydać -li nadal zwracałyby te same wyniki.
Thibaud Colas

34

Jeśli wiodąca gwiazdka stanowi problem, potokuję git branchnastępująco

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

Eliminuje to również linię „(bez gałęzi)”, która pojawia się po odłączeniu głowy.


1
Musiałem to zmodyfikować do git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'wersji git 1.9.1.
iurii

6
cut -c 3-jest łatwiejszą opcją
Alexey

32

Jednym z najprostszych sposobów na zrobienie tego jest

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

Działa to doskonale również w przypadku skryptów.


12

Oto jak wyświetlić listę oddziałów lokalnych, które nie mają źródła zdalnego o tej samej nazwie:

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

3
Fajny, również oneliner: comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
gr4viton

10

Innym sposobem uzyskania listy tylko oddział lokalny jest:

git branch -a | grep -v 'remotes'

4

Istnieje świetna odpowiedź na post dotyczący usuwania lokalnych oddziałów. W nim kolega buduje polecenie, aby wyświetlić listę lokalnych oddziałów:

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

Odpowiedź ma świetne wyjaśnienie na temat tego, jak to polecenie zostało wyprowadzone, więc sugeruję, abyś przeczytał ten post.


Dziękujemy za połączenie odpowiedzi. Potrzebowałem algo, aby wyświetlić listę lokalnych oddziałów, które NIE śledzą pilota. Ten jest jedynym, który wykonuje pracę.
JuroOravec

2

Aby uzupełnić odpowiedź @ gertvdijk - dodaję kilka zrzutów ekranu na wypadek, gdyby to pomogło komuś szybko.

Na mojej powłoce git bash

oddział git

polecenie bez żadnych parametrów pokazuje wszystkie moje lokalne oddziały. Obecna gałąź, która jest obecnie wyewidencjonowana, jest wyświetlana w innym kolorze (zielonym) wraz z gwiazdką (*), który jest naprawdę intuicyjny.

wprowadź opis zdjęcia tutaj

Gdy próbujesz zobaczyć wszystkie gałęzie, w tym gałęzie zdalne, używając

gałąź git -a

polecenie, a następnie zdalne gałęzie, które nie zostały jeszcze wypisane, są wyświetlane w kolorze czerwonym:

wprowadź opis zdjęcia tutaj


1
Tysiąc słów, z których nie można skopiować?
Tony Adams,

2
@TonyAdams Przykro mi, jeśli coś pomijam, ale oba polecenia, których wyniki wyświetlone na zdjęciach zostały wymienione na szarym tle (formatowanie kodu) w poście. Nieważne, poprawiłem formatowanie postu, aby był jeszcze bardziej czytelny. Doceniam Twoją opinię.
RBT
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.