如何在git中列出指向特定提交的所有标记

Zit*_*rax 69 tags git

我已经看到了命令git describe,git-name-rev但我还没有设法让它们列出多个标签.

示例:我有sha1 48eb354,我知道标签A和B指向它.所以我想要一个git {something} 48eb354产生类似于"A,B"的输出的git命令.我不想知道引用相对其他标签或分支只是标签的完全匹配.

小智 171

git tag --points-at HEAD

在HEAD显示所有标签,您也可以用任何sha1 id替换HEAD.

  • 可从1.7.10版本获得:https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.10.txt (7认同)

yor*_*mmi 41

您可以使用:

git tag --contains <commit>
Run Code Online (Sandbox Code Playgroud)

显示特定提交时的所有标记.它可以代替:

git tag --points-at HEAD
Run Code Online (Sandbox Code Playgroud)

仅从1.7.10开始提供.

  • 注意:'git tag --contains'不仅显示指向提交的标记,还包括可以从中访问的任何后续标记. (9认同)

max*_*max 40

git show-ref --tags -d | grep ^48eb354 | sed -e 's,.* refs/tags/,,' -e 's/\^{}//'

应该适用于轻量级和带注释的标签.


Ari*_*zis 6

(编辑:这个答案是在你现在使用的开关 \xe2\x80\x93 之前写的git tag--points-at

\n
git for-each-ref --format=\'%(objectname) %(refname:short)\' refs/tags/ |\n  grep ^$commit_id |\n    cut -d\' \' -f2
Run Code Online (Sandbox Code Playgroud)\n

遗憾的是它不能更容易地完成。包含提交 ID 的另一个标志git tag可以git for-each-ref自然地表达该调用。

\n