我正在改进一些遗留代码,我使用 git 来处理版本。而且我发现了 SAME 遗留代码的另一个分支,所以我想将它 merge 到我的代码中。问题是: 这两个版本的初始提交是不同的,所以我不能简单地在 git 中 rebase 。
NOW:
(origin) -- (untracked modifications) -- my tracked improvements
\- (other untracked modifications) --some other tracked improvements
NEEDED:
(origin) -- some other tracked improvements -- my tracked improvements
如图所示,这两个分支位于 2 个单独的存储库中。
我想我需要的可能只是将所有更改导入另一个新存储库,但我不知道如何导入。
最佳答案
如果您有 2 个非常相似的存储库,您可以使用嫁接点来使一个存储库的提交成为另一个存储库的父级,从而允许您在此之后 rebase 。
您有一个带有“How to merge two branches without a common ancestor?”的示例,但是您需要一个git filter-branch
来使本地 修改(移植点)永久化。
另一个更经典的解决方案是使用 subtree merging (也出现在 Pro Git book 中)。
博文“Having Fun with Git Subtree”为您提供了两个存储库之间的此类 merge 示例。
关于git:在 git 中使用未跟踪的基数进行 rebase ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801886/