git可以列出两个特定提交之间发生的标记吗?

时间:2013-05-09 00:57:34

标签: git tags commit

有没有办法让git列出两次提交之间添加的所有标签?也就是说,只显示在A点和B点之间出现的标签。

3 个答案:

答案 0 :(得分:9)

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

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

--decorate显示提交旁边的标记名称,--simplify-by-decoration仅显示已标记的提交。

答案 1 :(得分:3)

如果您想要commit1commit2之间的标记名称列表(按时间倒序排列),则可以git logxargs合并}和git tag --points-at

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

答案 2 :(得分:1)

此命令有效地列出了提交commit1commit2之间的所有标签(不包括commit1本身)。

git log --simplify-by-decoration --pretty=format:%D commit1..commit2 | \
    grep -o 'tag: [^,)]\+' | sed 's/^tag: //'

git log ...命令列出引用指定范围内每次提交的分支和标记。后续命令仅解析标签。