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

305

这个问题类似于如何列出指向Git特定提交的所有标签,但有一个区别:我希望搜索每个标签树中包含特定提交的所有标签,而不仅仅是标记文件本身标记的文件 (在此情况下,只有Makefile更改被标记)。


2
您无法对特定文件进行标记 - 标记仅指向提交。您可能希望编辑您的问题,提供更多要解决的问题细节。 - Mark Longair
2
另请参阅:如何列出包含给定提交的分支 - David J.
1
注意:在 Windows 上,如果您想使用 git tag --contains 不崩溃,请确保使用 git 2.0.x(2014)。请参见我的下面的回答。 - VonC
还有git branch --contains <commit>,它对分支执行相同的操作。需要同时使用两者。 - Palec
2个回答

485
git tag --contains <commit>

2
我已经尝试过这个方法。但是,如果标签只包含一个文件,我相信它只会搜索该文件。它不会搜索整个树。此外,我尝试的存储库非常大,git 已经被 SIGKILL 终止了。 - atx
27
标签不包含文件,它们只是提交记录的标记。鉴于这一点,我认为你的反对意见是没有意义的。 - amalloy
在这种情况下,它可能由于内存不足而无法显示提交。您知道我该如何解决这个问题吗? - atx
8
有没有办法针对远程标签执行此操作?类似于分支:git branch -r --contains <commit> - Mike
请注意,不能始终信任此命令。请参见以下链接:https://dev59.com/l2Qo5IYBdhLWcg3wI8VV#26090892 - gatis paeglis
@gatispaeglis 那个链接是关于不同问题的。如果你想找到包含提交的标签,这就是你要做的。找到具有相同差异的提交是一件不同的事情,也不常见需要。你链接的答案会给那些只想找到包含实际提交的标签的人带来可怕的建议。 - amalloy

28

27
没有恶意的双关语?;-) - MikeSchinkel
4
@MikeSchinkel 嗯…至少不是有意识的 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接