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

use*_*309 56 git search

我想找一个特定的分支,我知道它的名字会包含一个特定的子字符串(来自我们的bug跟踪器的问题的id),但是我不知道分支的全名(这就是我的意思)想知道).

我该如何搜索这个分支?

Evi*_*oad 79

git branch --all | grep <id>
Run Code Online (Sandbox Code Playgroud)

  • `git branch --all | grep -i <id>`表示不区分大小写. (9认同)

Cal*_* Li 44

Git 1.7.8提供了更好的解决方案:

git branch --list <pattern>

没有必要去grep.

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

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

  • 这是因为默认情况下`git branch`只列出本地分支.对远程分支使用`git branch -r`,对所有分支使用`git branch -a`. (6认同)
  • 注意:这将仅列出本地分支,即您将无法使用此命令找到远程分支. (3认同)
  • 在 bash 中,您将需要引用 glob 表达式以防止其扩展。要测试,请尝试`git checkout -b JIRA-style-test-1 &amp;&amp; git branch --list *test*` vs `git branch --list "*test*"`。只有第二个匹配“JIRA-style-test-1”。 (3认同)

Roy*_*uli 9

git branch -a | grep selector
Run Code Online (Sandbox Code Playgroud)

要么

git branch -r | grep selector
Run Code Online (Sandbox Code Playgroud)

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


paw*_*mar 8

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

git branch --list *text*
Run Code Online (Sandbox Code Playgroud)

例如,我想找到带有“生产”字样的分支

git branch --list *production*
Run Code Online (Sandbox Code Playgroud)


Sne*_*kse 7

建立其他人给出的答案,我把它添加到我的 .gitconfig

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

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