How to merge a repository copy
在项目开始时,我们启动了回购协议A。回购协议持续了几个月,直到其中一位工程师决定资助该项目。现在,他只需复制目录并开始一个新的回购。回购B。现在B没有A的历史,A也没有任何进一步的发展。现在我们想回到A,把B的所有东西都合并到A中,在B是一个独立的回购时保留B的所有历史。唯一的宽限是,既然B是A的复制品,我就可以把B的历史嫁接到A的末尾,一切都会好起来的。
不幸的是,我花了很长时间试图做到这一点。
我试过(repo-a):
1 2 3 | git add remote new REPO-B git checkout -b mergeAttempt git merge -X theirs --allow-unrelated-histories new/master |
现在,这似乎稍微起作用了,现在只有repo-b的历史覆盖了repo-a中对修改过的文件存在的任何历史,所以没有真正的历史。所以我尝试:
1 | git cherry-pick -X theirs <REPO-B first commit>..<REPO-B last commit> |
这也失败了,因为repo-b在它和master中创建的分支之间进行了多次合并。我还尝试在repo-b中创建一个分支,它将repo-a的根重新平衡到最后一次repo-a中的承诺,并产生可笑的结果。
所以我不知道从这里到哪里去。
将回购A合并为回购B的步骤:
1 2 3 4 5 6 7 8 9 | cd path/to/REPO-B git remote add REPO-A path/to/REPO-A get fetch REPO-A git merge --allow-unrelated-histories REPO-A/master git remote remove REPO-A |
来源:Git合并不同的存储库?