2012-01-10 130 views
3

我提高了一些遺留代碼未經跟蹤,我使用git來處理版本。我發現了另一個SAME遺留代碼的分支,所以我想將它合併到我的代碼中。現在的問題是: 這兩個版本的初始提交的是不同的,所以在我的git不能簡單地變基。混帳:變基帶基地混帳

NOW: 
(origin) -- (untracked modifications) -- my tracked improvements 
     \- (other untracked modifications) --some other tracked improvements 
NEEDED: 
(origin) -- some other tracked improvements -- my tracked improvements 

如圖所示,兩個分支位於兩個單獨的存儲庫中。

我想我需要什麼,也許只是導入所有改變成另一個新的倉庫,但我不知道怎麼辦。

回答

1

如果你有2個非常相似的回購協議,你可以爲了使用移植點使提交一個回購協議的其他回購的父母,讓你以後變基。
你有一個「How to merge two branches without a common ancestor?」的例子,但你需要一個git filter-branch來做出什麼是本地修改(嫁接點)永久。

另一個更經典的解決方案是使用subtree merging(也在Pro Git book中介紹)。

的博客文章「Having Fun with Git Subtree」給你兩個回購之間的這種合併的例子。

+0

這似乎工作,謝謝。 – Haocheng 2012-01-11 06:51:29

+0

@夏城:優秀。你可以將你選擇的解決方案(移植或子樹合併?)和你鍵入的命令作爲答案發布,以實現你想要的嗎? – VonC 2012-01-11 07:03:44