这个问题类似于How to list all tags pointing to a specific commit in git,但有一点不同:我希望在每个标记的树中搜索包含特定提交的所有标记,而不是标记在标记本身中的文件(在此case,只标记了Makefile更改。)
答案 0 :(得分:286)
git tag --contains <commit>
应该足够了吧?
答案 1 :(得分:21)
请注意,您需要git 2.0.x(2014年第3季度)才能列出特定提交的所有标记如果您拥有大型回购
commit cbc60b6见Jean-Jacques Lafay (lanfeust69
):
git tag --contains
:避免堆栈溢出在大型repos中,
contains(commit, commit_list)
的递归实现可能导致堆栈溢出。用循环替换递归来修复它。这个问题在Windows上比在Linux上更明显,在Linux上,默认情况下堆栈更受限制。
答案 2 :(得分:14)
git tag --contains <sha1_hash>
应该有效