【发布时间】:2021-07-05 03:03:18
【问题描述】:
我在git 中有两个分支,其中一个分支master 包含所有提交,另一个分支,例如release,其中包含来自第一个分支master 的一些精心挑选的提交。由于提交是在release 中挑选出来的,因此它们的提交哈希值与master 中的相应提交不同,但提交消息是相同的。
现在我想查找来自master 的提交,这些提交没有被精选到release 中。请注意,由于冲突解决,精心挑选的提交的代码可能与原始提交不同。
我该怎么做? git 中是否有对此的原生支持?
例子:
master分支:
git checkout master
git log --oneline -7
给予
2cba4b1d (HEAD -> master) Message subject for commit 7
f54fc16f Message subject for commit 6
4d871cbd Message subject for commit 5
a83ed44c Message subject for commit 4
48d0fb73 Message subject for commit 3
931da9a6 Message subject for commit 2
8553323b Message subject for commit 1
release分支
git checkout release
git log --oneline -5
给予
d65a04c6 (HEAD -> release) Message subject for commit 7
8aeecd92 Message subject for commit 6
2a54e335 Message subject for commit 4
99985f38 Message subject for commit 3
e76a9bb4 Message subject for commit 1
所以两个分支之间的区别将是两个带有消息主题的提交:
Message subject for commit 5
Message subject for commit 2
如果显示提交哈希也可以:
4d871cbd Message subject for commit 5
931da9a6 Message subject for commit 2
其他说明和要求:
上面的示例以与合并提交相同的顺序返回差异。在结果中获得与原始提交日志相同的顺序有助于在 master 的原始提交日志中识别提交。如果也能实现就好了。
在我的例子中,两个分支都有线性历史并且没有合并提交。
【问题讨论】:
标签: git cherry-pick