繁体   English   中英

当父母改变时重新合并合并提交

[英]Rebase a merge commit when parents changed

给定一个gerrit变更集,该变更集取决于另外两个独立的变更集:

P1-
   \
P2----C

gerrit将其表示为与两个父母的合并提交。 但是,与普通合并提交不同的是,它将包含与父级更改完全无关的非重要更改。

父变更集以gerrit更新,因此我们提交了P1'和P2',这是P1和P2的修订版,并根据代码审查反馈进行了修改。 生成C'的最简单方法是与父P1'和P2'进行合并提交,并且包含与C相同的更改(相对于其父)吗?

到目前为止,我得到的最接近的结果是使用重新基准化来创建具有正确的父对象和提交的提交,但没有原始提交的内容:

git checkout C
git rebase --preserve-merges --onto P1' P1
git rebase --preserve-merges --onto P2' P2

...然后手动应用C中的所有更改,如git show C所示。 有一种方法可以将git show组合的diff )的输出转换为普通的diff,这将使其自动化成为可能-我已经问了一个单独的问题: 将组合的diff转换为补丁

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM