首页 > 解决方案 > 合并 2 个不同的 git 存储库,内容几乎完全相同

问题描述

现在我有两个不同的存储库。回购 1:只有“核心”和一些“系统”模块。Repo 2:还有“core”、“sys”和很多其他的东西。问题是第二个 repo 没有跟踪或上传核心或 sys 模块的任何更改,我在那里做了很多更改。在我进行这些更改之前,Core 和 sys 与 core 和 sys 没有相同的阶段。

现在我不想将 repo 2 中的“core”和“sys”与 repo 1 同步,而且我不知道有什么轻微的解决方案。

标签: gitmergerepository

解决方案


快速回答:git remote add、fetch、merge。

长一个跟随。即使存储库完全不同(没有共同的祖先),您也可以将 2 个存储库的内容合二为一。在一个存储库(例如存储库 A)git remote add上,用于添加第二个存储库(例如存储库 B)。仍然在第一个存储库 (A) 中获取第二个存储库的内容git fetch repository_B。你得到的是一个包含两者内容的存储库。您现在可以合并它们。假设你在master,你可以将其他存储库 master 与git merge repository_B/master. 现在你得到了一个新的提交,其中包含你可以推送的所有内容。

如果您有很多冲突,最好尝试使这两个内容更相似,git diff并逐步更新其中一个以减少差异。例如git mv,如果目录路径不同,这可能涉及。


推荐阅读