在脚本中,我想确定标签或分支是否已 checkout 。
目前,我有:
git describe --tags
它会显示标签名称,但如果我们在一个分支上,它会引发错误(返回状态 != 0
):
fatal: No names found, cannot describe anything.
我可以依靠这种行为还是有更好/更正式的方式来做到这一点?
是否有一些我应该知道的未被此方法捕获的情况?
最佳答案
你可以使用 git symbolic-ref HEAD
来检查你是否在一个分支上并获取它的名字:
> git checkout master
[....]
> git symbolic-ref HEAD
refs/heads/master
> echo $?
0
如果你 checkout 一个标签,你会得到一个错误:
> git checkout some_tag
[....]
> git symbolic-ref HEAD
fatal: ref HEAD is not a symbolic ref
> echo $?
128
关于git - 确定我们是用 git checkout 一个分支还是一个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16836582/