有没有办法让git列出两次提交之间添加的所有标签?也就是说,只显示在A点和B点之间出现的标签。
答案 0 :(得分:9)
您可以将git log
命令与以下选项一起使用:
git log tagA...tagB --decorate --simplify-by-decoration
--decorate
显示提交旁边的标记名称,--simplify-by-decoration
仅显示已标记的提交。
答案 1 :(得分:3)
如果您仅想要commit1
和commit2
之间的标记名称列表(按时间倒序排列),则可以git log
与xargs
合并}和git tag --points-at
:
git log commit1..commit2 --simplify-by-decoration --format=format:%h | xargs -L1 git tag --points-at
答案 2 :(得分:1)
此命令有效地列出了提交commit1
和commit2
之间的所有标签(不包括commit1
本身)。
git log --simplify-by-decoration --pretty=format:%D commit1..commit2 | \
grep -o 'tag: [^,)]\+' | sed 's/^tag: //'
git log ...
命令列出引用指定范围内每次提交的分支和标记。后续命令仅解析标签。