我找不到当前签出的标签。

当我这样做的时候:

git checkout tag1
git branch

我好像找不出我在哪个标签上。它只记录:

* (no branch)
master

是否有可能找出哪些标签被签出?在上面的例子中,这将是tag1。


当前回答

Git日志—装饰

这将告诉你哪些引用指向当前签出的提交。

其他回答

显示当前HEAD上的所有标签(或提交)

git tag --points-at HEAD

这对我有用git describe -tags -abbrev=0

编辑2020:正如下面的一些评论所提到的,这可能对你有用,也可能没用,所以要小心!

Git日志—装饰

这将告诉你哪些引用指向当前签出的提交。

Git描述的是一个瓷器命令,你应该避免:

http://git-blame.blogspot.com/2013/06/checking-current-branch-programatically.html

相反,我使用:

git name-rev --tags --name-only $(git rev-parse HEAD)

Edit

Jakub narabbski报道。下面这个简单得多的命令可以很好地工作:

git describe --tags

(如果签出了带注释的标记,则不使用——标记。我的标签很轻,所以我需要——标签。)

原来的答案

git describe --exact-match --tags $(git log -n1 --pretty='%h')

更有天赋的人可能会有更优雅的解决方案……

这利用了git-log从您签出的内容开始报告日志的事实。%h打印缩略散列。然后git describe——exact-match——tags找到与提交完全匹配的标记(轻量级的或带注释的)。

上面的$()语法假设您正在使用bash或类似的方法。