git - 确定我们是用 git checkout 一个分支还是一个标签

标签 git

在脚本中,我想确定标签或分支是否已 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/

相关文章:

git - 如何以自定义漂亮的日志格式在每个新行上附加选项卡?

git 配置以在推送时提示输入用户名

git - 缺少 .git 目录

git - 有没有办法共享一个 git Remote ?

git - Atlassian Soucetree 2.3.1.0 : Difference between 'remove' and 'discard'

git - 为什么 HEAD^ 在命令提示符下成功而 HEAD~ 失败?

node.js - npm 警告没有存储库字段

git - Azure管道: How to give the build service account contribue access to a repo

python - 配置以便 pip install 可以从 github 工作

Git pull 请求失败