如何在Git中搜索分支名称?


76

我想找到一个特定的分支,我知道它的名称将包含一个特定的子字符串(来自我们的错误跟踪器的问题的ID),但是我不知道分支的全名(这就是我的意思)想找出来)。

如何搜索该分支?


你好=]检查链接(stackoverflow.com/questions/15292391/…)。它可以帮助您。
Thaisa Mirely,2015年

2
@ThaisaMirely您提供的链接用于在所有分支的所有文件中搜索。这个问题要求只搜索分支名称
史蒂夫·钱伯斯

Answers:



62

Git 1.7.8在不使用grep的情况下提供了更好的解决方案:

git branch --list <pattern>并在bash中git branch --list '<pattern>'加上围绕模式的引号。

这也适用于通配符(*),因此您可以使用git branch --list *<id>*来找到您的分支。

这将过滤其余git branch命令返回的分支名称列表(例如,仅默认情况下为本地分支,所有带有的分支git branch -a --list <pattern>,等等)。


3
注意:这只会列出本地分支,即您将无法使用此命令找到远程分支。
Kinaan Khan Sherwani,

8
这是因为git branch默认情况下,仅列出本地分支。使用git branch -r远程分支机构和git branch -a所有分支机构。
加尔文·李

3
在bash中,您将需要引用glob表达式以防止其扩展。为了测试,尝试git checkout -b JIRA-style-test-1 && git branch --list *test*VS git branch --list "*test*"。只有第二个会匹配JIRA-style-test-1
史蒂文·卡尔特

1
@Facepalmed添加到答案
卡尔文·李

9
git branch -a | grep selector

要么

git branch -r | grep selector

-a显示所有本地和远程分支,而-r仅显示远程分支。


8

建立其他人给出的答案后,我将此添加到了 .gitconfig

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

所以在命令行上我可以输入 git findb BUG-123


1
尽管两者都在分支机构列表上使用grep,但这一结果要好于经常使用的答案。谢谢。
萨伊姆(Saim)'17年

4

在指定文本的地方找到分支名称

git branch --list *text*

对于Ex,我想找到带有“生产”字样的分支

git branch --list *production*

是的git branch --list <whatever>。您编写的内容无效,如果不使用关键字就使用它,它将创建一个名为list
jpenna

0

假设您使用的是GitHub,则有一个分支的下拉列表,并且该下拉菜单中的标签有一个搜索区域。

您可以使用该搜索区域搜索您的分支名称。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.