master
包含所有提交记录,另一个分支,例如 release
,包含从第一个分支 master
中挑选的某些提交记录。由于这些提交记录是在 release
中挑选的,所以它们具有不同的提交哈希值,但提交信息相同。现在我想找到在
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
发布
分支
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
额外的解释和要求:
上面的示例以合并提交的顺序返回diff。在结果中获得与原始提交日志相同的顺序,有助于在master
的原始提交日志中识别提交。如果可能的话,也希望能够实现。
在我的情况下,两个分支都具有线性历史记录,并且没有合并提交。