考虑以下提交历史记录:
1---R---3---5---P-> # patch-v1.1
\ \
2---4---+---8---+---10---R-> # release-v2.0
\ /
6---7---9 # feature-foo
--> time
# 1 - 10 are commits
# P is a patch release commit
# R are major release commits
# + marks a merge commit
我想为release-v2.0
生成更改日志,但由于P (patch-v1.1)
已经发布,因此它的更改不应该是v2.0
更改日志的一部分。我是否可以将git log
命令配置为仅列出提交2, 4, 6 .. 11
(即来自release-v2.0
和feature-foo
的提交)?
答案 0 :(得分:10)
使用git log R --not P
。这与@ micha-wiedenmann的评论中的git log P..R
相同,但我发现前一种语法更多。是的,它将包括2, 4, 6, 7, 9
,因为它们按时间顺序排列(就创作的时间而言)并不重要,但它们在DAG中的位置。使用R --not P
,您基本上可以根据集合理论创建R中P的补集。