我有一个名为 Repo A 的回购,其中包含两个项目。目标是将项目B 移出回购A 。有人这样做了,但在我们删除旧位置的依赖关系之前,其他人提交了 Project B 的旧位置。更糟糕的是,其他人似乎也加入了对 Repo B / Project B 的承诺。
在保留历史记录的同时,将这些更改整合到回购B 中的最简单方法是什么?
答案 0 :(得分:1)
这将是乏味的,但如果出现冲突,它们应该很容易解决。
如果变化不多:
在回购A - 项目B
通过查看以下内容的输出来确定在转移到Repo B之后完成的提交:
git log
在回购B - 项目B
git cherry-pick commit-hash-from-step-2-above
,示例命令:
git cherry-pick 22c5679c160c5f64f5f58109fe62be683fc896f4
答案 1 :(得分:0)
这将很快一步完成所有更改,但冲突解决可能会更难。
如果更改很多,但您有一个定义良好的文件夹结构,其中项目A与项目B隔离,您将拥有:
repoA/
projectA/
projectB/
repoB/
projectB/
所以,你可以:
从repoA获取所有代码
cd repoB
git remote add origin2 url-for-repoA
# I assumed the master branch, could be other.
git pull origin2 master
结果将是:
repoA/
projectA/
projectB/
repoB/
projectA/
projectB/ <-- probably with conflicts waiting to be resolved
清理:
cd repoB
git reset --hard HEAD projectA/
git remote remove origin2
结果:
repoB/
projectB/ <-- still with conflicts waiting to be resolved