我需要一个命令,返回我当前检出的版本的完整引用名称。或者尽可能接近这个结果。如果是Git特有的(为了跨平台目的),那就更好了。
所谓“完整引用名称”,指的是例如refs/tags/my-tag
、refs/heads/my-branch
。
示例:
git checkout master
magic command
# => /refs/heads/master
git checkout v1.0.0
magic command
# => /refs/tags/v1.0.0
git checkout 86742545e8152a8fbf31eafa55eb573042f61f5d
magic command
# =>
参考要点:
- 我认为这是不可能 100% 准确的,因为(据我所知 git)检出标签和特定哈希没有区别。也就是说,
.git/HEAD
在两种情况下都显示哈希值。 git show-ref
显示所有引用及其对应的提交哈希git symbolic-ref HEAD
对分支有效,并且使用-q
选项,如果您不在分支上,则不会失败git describe --tags --exact-match
对标签有点用,但您需要在前面加上refs/tags
并摆脱 stderr
相关链接:
所有我找到的东西都似乎太复杂了,不符合我的要求。
git branch --list
命令,它会返回当前检出分支的名称。 - Serge