[英]Git rebase from multiple branches not getting changes
在master分支中,我為項目創建了一個分支“ topicA”,該項目只是原始文件的子集,並添加了一些新文件。 為此,我創建了分支,刪除了不需要的文件,添加了一些新文件並提交了。
然后,我創建了一個功能分支“ topicB”並進行了一些更改。
E--H--I topicA
/
/ K--L--M topicB
/ /
A--B--C--D--F--J--N master
我希望將“ topicB”中的更改應用於“ topicA”。 生成的樹看起來像:
E--H--I topicA
/
K--L--M topicB
/
A--B--C--D--F--J--N master
我一直在嘗試為此使用rebase,但一直無法獲得所需的結果。
git checkout topicA
git rebase topicB
這導致合並,並且我解決了一些沖突,但是新的topicA中未出現對topicB的所有更改。
我也試過
git rebase --onto topicA master topicB
認為這將把主題B的更改應用於主題A,而master是共同的祖先,但這以我在主題B分支中的更改而告終。
在用topicB的更改為母版重新設置基礎之后,我希望能夠從母版中重新設置topicA的基礎,以繼續獲取對topicA重要的文件的更改。
是否有可能從master分支,然后從也從master分支的另一個分支重新建立基礎? 我使用rebase錯誤嗎? 對於這個用例,合並會更好嗎?
謝謝
更新 @VonC描述的rebase有效,現在我有了像這樣的樹:
E--H--I topicA
/
K--L--M--O topicB
/
A--B--C--D--F--J--N master
當我嘗試再次從topicB重新設置topicA以獲得新更改時,
git checkout topicA
git rebase topicB
但這是要我解決我已經解決的將主題A重新設置為基准並使它從M分支出來的沖突。如何在不處理我已經解決的所有沖突的情況下將主題A重新設置為主題B'O'?
rebase --onto
應該使用topicA
創建topicA
的確切提交:
git rebase --onto topicB D topicA
請參見該示例以獲取說明。
那會得到:
E'--H'--I' topicA
/
K--L--M topicB
/
A--B--C--D--F--J--N master
然后,是的,您可以將topicA
設置為master
:
git checkout topicA
git rebase master
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.