2012-01-10 89 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