在项目开始时,我们启动了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在创建的分支与主人的分支之间有多个合并。我还试图在repo-b中创建一个分支,该分支将仓库的根部框在repo-a中的最后一个提交中,并带有有趣的后果。
所以我不确定从这里去哪里。
将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
来自:GIT合并不同的存储库?