如何获取工作副本的当前分支或标记名称?我已经看到指示rev-parse --abbrev-ref HEAD
将给出分支名称的引用,但是如果checkout是标记,则这不起作用,在这种情况下它只返回'HEAD'。我需要以某种方式获取这些修订的标记名称。
要清楚,我想要两个可能的名字之一:
答案 0 :(得分:48)
我想你想要这个:
git symbolic-ref -q --short HEAD || git describe --tags --exact-match
如果它没有分离,那么它将输出HEAD的值,或者如果它是完全匹配则发出标记名称。否则它会显示错误。
答案 1 :(得分:3)
此命令可以按以下优先级打印名称:tag
> branch
> commit
git describe --tags --exact-match 2> /dev/null \
|| git symbolic-ref -q --short HEAD \
|| git rev-parse --short HEAD
答案 2 :(得分:1)
此命令可以按以下优先级打印名称:branch
> tag
> commit id
git symbolic-ref --short -q HEAD \
|| git describe --tags --exact-match 2> /dev/null \
|| git rev-parse --short HEAD
合并了@ xiaohui-zhang的回答和@thisismydesign的评论。我每隔几个月就会反复提出这个问题,而这就是我最终得到的答案,所以我认为我会发布它。