我正在使用下面的命令来查找在我的存储库中是否存在一个带有branch-name的本地git分支。这对吗?有没有更好的办法?

请注意,我是在脚本中执行此操作的。因此,如果可能的话,我希望使用管道命令。

git show-ref --verify --quiet refs/heads/<branch-name>
# $? == 0 means local branch with <branch-name> exists. 

当前回答

是的,有一个。

git rev-parse [<options>] <args>…​

请参阅https://git-scm.com/docs/git-rev-parse,在那里可以找到参数集和函数。

git rev-parse --verify <branch-name>

其他回答

据我所知,这是在脚本中实现它的最佳方式。我不确定是否有更多的补充,但可能有一个答案只是说“这个命令做你想要的一切”:)

唯一需要注意的是分支名称中可能有令人惊讶的字符,因此可能需要引用<branch-name>。

如果您能设法包括grep。

git branch | grep -q <branch>

是的,有一个。

git rev-parse [<options>] <args>…​

请参阅https://git-scm.com/docs/git-rev-parse,在那里可以找到参数集和函数。

git rev-parse --verify <branch-name>

对于在脚本中使用,我建议使用以下命令:

git ls-remote --heads <repo_url> "<branch_name>" | wc -l

注意,<repo_url>可以只是一个“。”来指定本地回收(如果您在其目录结构中)、本地回收的路径或远程回收的地址。

如果<branch_name>不存在,则该命令返回0,如果存在则返回1。

git branch --list $branch_name | grep $branch_name

然后检查返回值是0还是1。