如果我有一个使用标签表示版本发布的git仓库。
我如何获取两个标签之间提交的列表(如果可能的话还要带有漂亮的格式)?
git log --pretty=oneline tagA...tagB
(即三个点):
如果你只想要从tagB可达的提交,但不包括tagA:
git log --pretty=oneline tagA..tagB
(即两个点)
或者
git log --pretty=oneline ^tagA tagB
要比较当前分支的最新提交和一个标签:
git log --pretty=oneline HEAD...tag
pretty formats
相关的部分。git log --pretty=format:"%h; author: %cn; date: %ci; subject:%s" tagA...tagB
提示:
git log tagA...tagB
如果您的团队在此项目中使用描述性提交消息(例如:"Ticket #12345 - 更新依赖项"),则可以按照以下方式生成自最新标签以来的更改日志:
git log --no-merges --pretty=format:"%s" 'old-tag^'...new-tag > /path/to/changelog.md
--no-merges
会从列表中省略合并提交old-tag^
指的是在标记之前的上一个提交。如果您希望出于任何原因将已标记的提交放在列表底部,则此选项非常有用。(仅在Mac OS上的iTerm需要使用单引号)。