在项目开始时,我们开始了REPO-A。该回购继续了几个月,直到其中一名工程师决定分配该项目。现在他只需复制目录并启动一个新的仓库即可。 REPO-B。现在B没有A的历史,A没有任何进一步的发展。现在我们想回到A并将B中的所有内容合并回A,并保留B的所有历史记录,而它是一个单独的回购。这里唯一的优点是,因为B作为A的副本开始,我应该能够将B的历史嫁接到A的末尾,一切都应该没问题。
不幸的是,我有一段时间尝试这样做。
我试过(REPO-A):
git add remote new REPO-B
git checkout -b mergeAttempt
git merge -X theirs --allow-unrelated-histories new/master
现在这似乎有点工作,只有REPO-B的历史记录现在覆盖了REPO-A中存在的任何已修改文件的历史记录,因此没有真正的历史记录。所以我试过了:
git cherry-pick -X theirs <REPO-B first commit>..<REPO-B last commit>
这也失败了,因为REPO-B在它和master中创建的分支之间有几个合并。我还尝试在REPO-B中创建一个分支,它将repo的根目录重新转换为REPO-A中的最后一个提交,并带来了欢闹的后果。
所以我不确定从哪里开始。
答案 0 :(得分:2)
将REPO-A合并到REPO-B的步骤:
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