如何列出包含提交的所有标签?

atx*_*atx 202 git

这个问题类似于如何在git中列出指向特定提交的所有标记,但有一点不同:我希望在每个标记的树中搜索包含特定提交的所有标记,而不是标记在标记中的文件本身(在这种情况下,只标记了Makefile更改).

ama*_*loy 310

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

应该够了吧?

  • 标签不包含文件.它们只是提交的标记.鉴于此,我不认为你的反对是有道理的. (20认同)
  • 有没有办法对远程标签这样做?与分支类似:`git branch -r --contains <commit>` (5认同)
  • 我试过这个.但如果标签只包含一个文件,我相信它只搜索该文件.它不会搜索树.此外,我试过它的存储库是如此大的git保释并得到SIGKILL'ed. (2认同)

Von*_*onC 23

请注意,如果您拥有大型仓库,则需要git 2.0.x(2014年第3季度)以列出特定提交的所有标签

提交cbc60b6让-雅克·Lafay( )lanfeust69:

git tag --contains:避免堆栈溢出

在大型repos中,递归实现contains(commit, commit_list)可能导致堆栈溢出.用循环替换递归来修复它.

这个问题在Windows上比在Linux上更明显,在Linux上,默认情况下堆栈更受限制.

另请参见msysGit列表中的此主题.

  • 没有双关语意图?;-) (6认同)
  • @MikeSchinkel嗯...至少是一个*故意的*一个. (3认同)

man*_*lds 14

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

应该管用