我正在使用下面的命令来查找在我的存储库中是否存在一个带有branch-name的本地git分支。这对吗?有没有更好的办法?
请注意,我是在脚本中执行此操作的。因此,如果可能的话,我希望使用管道命令。
git show-ref --verify --quiet refs/heads/<branch-name>
# $? == 0 means local branch with <branch-name> exists.
我正在使用下面的命令来查找在我的存储库中是否存在一个带有branch-name的本地git分支。这对吗?有没有更好的办法?
请注意,我是在脚本中执行此操作的。因此,如果可能的话,我希望使用管道命令。
git show-ref --verify --quiet refs/heads/<branch-name>
# $? == 0 means local branch with <branch-name> exists.
当前回答
我推荐git show-ref——quiet refs/heads/$name。
——quiet意味着没有输出,这很好,因为这样你就可以干净地检查退出状态。 引用/heads/$name限制到本地分支并匹配完整名称(否则dev将匹配develop)
在脚本中的用法:
if git show-ref --quiet refs/heads/develop; then
echo develop branch exists
fi
其他回答
要验证远程上是否存在分支,这对我来说很好:
git branch -r | grep -qn origin/${GIT_BRANCH_NAME}$ && echo "branch exists" || echo "branch does not exists"
git branch --list $branch_name | grep $branch_name
然后检查返回值是0还是1。
如果您能设法包括grep。
git branch | grep -q <branch>
在脚本中使用:
git show-ref -q --heads <branch-name>
当且仅当<branch-name>存在时,该函数将退出0 作为一个地方分支机构。
例子:
if git show-ref -q --heads <branch-name>; then
echo 'Branch exists'
fi
我认为你可以在这里使用git show-branch。
$ git show-branch --list
[master] test
* [testbranch] test
$ git show-branch testbranch
[testbranch] test
$ echo $?
0
$ git show-branch nonexistantbranch
fatal: bad sha1 reference nonexistantbranch
$ echo $?
128
所以,美元?== 0表示分支存在 你根本不需要去挖掘裁判/人头的管道。只要你不把-r传递给show-branch, 它将只在当地分支机构运作。