获取两个提交之间所有标签的列表

8
我有两个提交哈希值,想要列出这两个提交哈希值之间所有以phinx-开头的标签。如何做到呢? 编辑: 这是我想到的解决方案。有更好的解决方案吗?
git log --pretty=format:'%D' 35164f33..49085fbe | grep -o 'tag: phinx-[0-9]*'
2个回答

2
一个快速的技巧可能是:
git log --oneline --decorate <sha1>..<sha1>|grep "tag:"| grep "phinx-"

一个实际的解决方案可能更加复杂,并涉及到git rev-list


感谢 @VonC。快速解决方案也是我首先想到的。 - Joyce Babu

1
如果您可以使用 comm命令,请查看此解决方案。
comm -23 <(git tag -l phinx-* --contains <sha1 start>) <(git tag -l phinx-* --contains <sha1 end>)

有趣的想法。谢谢。 - Joyce Babu
我喜欢这个,因为模式仅与标签名称匹配,并且仅返回标签名称,而不是整个日志行。 - Francesco
1
在我所提供的答案中,建议使用comm命令。它应该可以正常工作,但请注意其中提到的一个警告,即文档声称comm输入应该是已排序的。(幸运的是,git tag -l默认也进行了排序!) - torek

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