获取git当前分支/标记名称

问题描述 投票:19回答:2

如何获取工作副本的当前分支或标记名称?我已经看到了引用rev-parse --abbrev-ref HEAD将给出分支名称的引用,但是如果checkout是标记,这不起作用,在这种情况下它只返回'HEAD'。我需要以某种方式获取这些修订的标记名称。

要清楚,我想要两个可能的名字之一:

  1. 如果当前结账是分支的HEAD,我想要分支名称
  2. 如果它是一个分离的HEAD,我想要标签名称(假设有一个标签)
git branch git-branch git-checkout
2个回答
51
投票

我想你想要这个:

git symbolic-ref -q --short HEAD || git describe --tags --exact-match

这将输出HEAD的值,如果它没有分离,或者发出标记名称,如果它是完全匹配的话。否则它会显示错误。


5
投票

此命令可以打印此优先级的名称:tag> branch> commit

git describe --tags --exact-match 2> /dev/null \
  || git symbolic-ref -q --short HEAD \
  || git rev-parse --short HEAD
© www.soinside.com 2019 - 2024. All rights reserved.