Git: Wie liste ich nur lokale Filialen auf?

935

git branch -a zeigt sowohl entfernte als auch lokale Zweige.

git branch -r zeigt entfernte Zweige.

Gibt es eine Möglichkeit, nur die lokalen Niederlassungen aufzulisten?

Munyengm
quelle

Antworten:

1444

Nur git branchohne Optionen.

Aus der Manpage:

Ohne Argumente werden vorhandene Zweige aufgelistet und der aktuelle Zweig wird mit einem Sternchen hervorgehoben.

gertvdijk
quelle
25
Ich hatte gehofft, einen Weg zu finden, um lokale Zweige aufzulisten, die keinen entsprechenden entfernten Zweig haben.
Steve Crane
5
Nicht vollständig, aber Antworten auf meine Frage Wie kann ich lokale Zweigstellen auflisten, die keine Remote-Zweigstelle haben ?
Steve Crane
3
@ c00kiemon5ter Ich liebe es, wie du einen Weg gefunden hast, um trotzdem ein paar Punkte zu sammeln! So lustig.
Abram
4
Wie ist dies die richtige Antwort auf die Frage ("... um nur die lokalen Niederlassungen aufzulisten ...") ???
Wagner da Silva
7
@ gr4viton: In den mir vertrauten Dialekten des Englischen wird "Nur lokale Zweige auflisten" normalerweise als "Nur die lokalen Zweige auflisten" analysiert. (Um zu sagen "liste die Zweige auf, die nur lokal sind", würde ich sagen "liste nur lokale Zweige auf".)
Mathieu K.
221

nur der einfache Befehl

git branch
c00kiemon5ter
quelle
5
Diese Antwort hat genau den gleichen Zeitstempel wie die akzeptierte Antwort. Akzeptierte Antwort muss im Millisekunden-Teil voraus sein :)
RBT
4
@RBT Mouseover die Zeiten. Diese Antwort war 9 Sekunden schneller.
Kevin Workman
1
c00kiemon5ter verdient die Anerkennung für die Antwort!
Skydev
75

git branch -a- Alle Filialen.

git branch -r- Fernbedienung Nur Zweige.

git branch -l oder git branch- Nur lokale Niederlassungen.

Kurzente
quelle
Für mich deutet die Formatierung dieser Antwort auf die -lStände hin --local, während es tatsächlich so ist --list. Ich würde vorschlagen, es zu entfernen, um diese Verwirrung zu vermeiden - technisch könnten alle Befehle in dieser Antwort verwendet werden -lund sie würden immer noch die gleichen Ergebnisse zurückgeben.
Thibaud Colas
34

Wenn das führende Sternchen ein Problem darstellt, leite ich git branchFolgendes wie folgt weiter

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

Dadurch wird auch die Zeile "(kein Zweig)" entfernt, die angezeigt wird, wenn Sie den Kopf abgenommen haben.

John Marter
quelle
1
Musste dies git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'für Git Version 1.9.1 ändern.
Iurii
6
cut -c 3-ist eine einfachere Option
Alexey
33

Eine der einfachsten Möglichkeiten ist dies

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

Dies funktioniert auch perfekt für Skripte.

Victor Yarema
quelle
12

So listen Sie lokale Zweige auf, für die kein Remote-Zweig mit demselben Namen vorhanden ist:

git branch | sed 's|* |  |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote
Shnatsel
quelle
3
Schön, auch oneliner: comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
gr4viton
10

Eine andere Möglichkeit, eine Liste nur für eine lokale Niederlassung zu erhalten, ist:

git branch -a | grep -v 'remotes'
jlsanchezr
quelle
4

Es gibt eine großartige Antwort auf einen Beitrag darüber, wie nur lokale Zweige gelöscht werden. Darin erstellt der Fellow einen Befehl, um die lokalen Zweige aufzulisten:

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

Die Antwort enthält eine großartige Erklärung, wie dieser Befehl abgeleitet wurde. Ich würde Ihnen daher empfehlen, diesen Beitrag zu lesen.

Samwar
quelle
Vielen Dank für die Verknüpfung der Antwort. Ich brauchte ein Algo, um lokale Zweige aufzulisten, die KEINE Fernbedienung verfolgen. Dieser ist der einzige, der den Job macht.
JuroOravec
2

Zur Ergänzung der Antwort von @ gertvdijk füge ich einige Screenshots hinzu, falls es jemandem schnell hilft.

Auf meiner Git Bash Shell

Git Zweig

Befehl ohne Parameter zeigt alle meine lokalen Zweige. Der aktuelle Zweig, der gerade ausgecheckt ist, wird in einer anderen Farbe (grün) zusammen mit einem Sternchen (*) angezeigt, was sehr intuitiv ist.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie versuchen, alle Zweige einschließlich der Remote-Zweige mit anzuzeigen

Git-Zweig -a

Befehl dann Remote-Zweige, die noch nicht ausgecheckt sind, werden in roter Farbe angezeigt:

Geben Sie hier die Bildbeschreibung ein

RBT
quelle
1
Tausend Wörter, von denen man nicht kopieren kann?
Tony Adams
2
@ TonyAdams Es tut mir leid, wenn mir etwas fehlt, aber beide Befehle, deren Ausgabe ich in den Bildern angezeigt habe, wurden im Beitrag in grauem Hintergrund (Code-Formatierung) erwähnt. Egal, ich habe die Formatierung des Beitrags verbessert, um ihn noch besser lesbar zu machen. Ich bedanke mich für ihre Rückmeldung.
RBT