Wie suche ich in Git nach Filialnamen?

76

Ich möchte einen bestimmten Zweig finden, und ich weiß, dass sein Name einen bestimmten Teilstring enthalten würde (die ID des Problems aus unserem Bug-Tracker), aber ich kenne nicht den gesamten Namen des Zweigs (das ist, was ich bin herausfinden wollen).

Wie kann ich nach diesem Zweig suchen?

user650309
quelle
Hallo =] Überprüfen Sie den Link ( stackoverflow.com/questions/15292391/… ). es kann dir helfen.
Thaisa Mirely
2
@ThaisaMirely Der von Ihnen angegebene Link dient zur Suche in allen Dateien in allen Zweigen . Bei dieser Frage wird nur nach den Filialnamen gesucht .
Steve Chambers

Antworten:

108
git branch --all | grep <id>
Böse Kröte
quelle
13
git branch --all | grep -i <id>für Groß- und Kleinschreibung.
Adam Johns
62

Git 1.7.8 bietet eine bessere Lösung ohne grep:

git branch --list <pattern>und in Bash git branch --list '<pattern>'mit Anführungszeichen um Muster.

Dies funktioniert auch mit Platzhaltern ( *), sodass Sie git branch --list *<id>*Ihren Zweig finden können.

Dadurch wird die Liste der Zweignamen gefiltert, die vom Rest Ihres git branchBefehls zurückgegeben werden (z. B. standardmäßig nur lokale Zweige, alle Zweige mit git branch -a --list <pattern>usw.).

Calvin Li
quelle
3
HINWEIS: Hier werden nur lokale Zweige aufgelistet, dh Sie können die Remote-Zweige mit diesem Befehl nicht finden.
Kinaan Khan Sherwani
8
Dies liegt daran, dass git branchstandardmäßig nur lokale Zweige aufgelistet werden. Verwendung git branch -rfür entfernte Zweige und git branch -afür alle Zweige.
Calvin Li
3
In Bash müssen Sie den Glob-Ausdruck zitieren, um zu verhindern, dass er sich ausdehnt. Um Test, versuchen git checkout -b JIRA-style-test-1 && git branch --list *test*vs git branch --list "*test*". Nur der zweite wird übereinstimmen JIRA-style-test-1.
Steven Kalt
1
@Facepalmed Zur Antwort hinzugefügt
Calvin Li
9
git branch -a | grep selector

Oder

git branch -r | grep selector

-a zeigt alle lokalen und entfernten Zweige an, während -r nur entfernte Zweige anzeigt.

Roy Shmuli
quelle
8

Aufbauend auf den Antworten, die andere gegeben haben, fügte ich dies zu meinem hinzu .gitconfig

[alias]
  findb = "!f(){ git branch -ra | grep $1; }; f"

Also kann ich in der Kommandozeile tippen git findb BUG-123

Snekse
quelle
1
Obwohl beide grep in der Liste der Zweige verwenden, ist diese besser als die akzeptierte Antwort für die häufige Verwendung. Vielen Dank.
Saim
4

Suchen Sie den Zweigstellennamen, in dem Text angegeben wurde

git branch --list *text*

Zum Beispiel möchte ich den Zweig finden, der das Wort "Produktion" hat

git branch --list *production*
Pawan Kumar
quelle
Es ist git branch --list <whatever>. Was Sie geschrieben haben, funktioniert nicht und wenn Sie es ohne das Schlüsselwort verwenden, wird ein Zweig mit dem Namen list erstellt
jpenna
0

Angenommen, Sie verwenden GitHub, gibt es eine Dropdown-Liste für Ihre Zweige und für Tags in diesem Dropdown-Menü gibt es einen Suchbereich.

In diesem Suchbereich können Sie nach Ihrem Filialnamen suchen.

Fosterdn007
quelle