Git能列出在两个特定提交之间发生的标签吗?

10
有没有一种方法可以让git列出在两个提交之间添加的所有标签?也就是说,只显示出在A点和B点之间出现的标签。
3个回答

11

您可以使用以下选项与 git log 命令:

git log tagA...tagB --decorate --simplify-by-decoration

--decorate 显示提交旁边的标签名称,--simplify-by-decoration 只显示已被打了标签的提交。


4
您还可以使用提交的校验和,这可能是对问题更合适的答案:git log commitA...commitB --decorate --simplify-by-decoration - Robert Gomez
git log --decorate --simplify-by-decoration tagA...tagB,不要相信你在互联网上读到的一切。 - Paul Draper

5

如果你只需要在 commit1commit2 之间的标签名称列表(按照时间倒序),你可以结合使用 git logxargsgit tag --points-at

git log commit1..commit2 --simplify-by-decoration --format=format:%h | xargs -L1 git tag --points-at

1
这个命令可以高效地列出在提交 commit1commit2 之间的所有标签(不包括 commit1 本身)。
git log --simplify-by-decoration --pretty=format:%D commit1..commit2 | \
    grep -o 'tag: [^,)]\+' | sed 's/^tag: //'
< p > git log ... 命令列出指定范围内每个提交所引用的分支和标签。随后的命令仅解析标签。


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