【发布时间】:2013-05-09 00:57:33
【问题描述】:
有没有办法让 git 列出两次提交之间添加的所有标签?也就是说,只显示出现在 A 点和 B 点之间的标签。
【问题讨论】:
有没有办法让 git 列出两次提交之间添加的所有标签?也就是说,只显示出现在 A 点和 B 点之间的标签。
【问题讨论】:
您可以将git log 命令与这些选项一起使用:
git log tagA...tagB --decorate --simplify-by-decoration
--decorate 显示提交旁边的标记名称,--simplify-by-decoration 仅显示已标记的提交。
【讨论】:
git log commitA...commitB --decorate --simplify-by-decoration
git log --decorate --simplify-by-decoration tagA...tagB...不要相信你在互联网上读到的一切。
如果您只想要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
【讨论】:
此命令有效地列出了提交commit1 和commit2 之间的所有标签(不包括commit1 本身)。
git log --simplify-by-decoration --pretty=format:%D commit1..commit2 | \
grep -o 'tag: [^,)]\+' | sed 's/^tag: //'
git log ... 命令列出了引用指定范围内每个提交的分支和标签。随后的命令只解析出标签。
【讨论】: