簡體   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