首页 > 解决方案 > 将一个git存储库移动到另一个时如何解决冲突

问题描述

我有两个存储库 repo-A 和 repo-B。我想将 repo-A 作为子文件夹移动到 repo-B 中。我的问题与可能的重复答案不同!请不要在没有任何想法的情况下标记它。我在 repo-B 中执行了以下操作:

git remote add repo-A url-to-repo-A
git fetch repo-A --tags
git merge --allow-unrelated-histories repo-A/master

但是,我收到以下错误:

Auto-merging package.json
CONFLICT (add/add): Merge conflict in package.json
Auto-merging package-lock.json
CONFLICT (add/add): Merge conflict in package-lock.json
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.

我该如何解决这个问题?

标签: gitrepositorygit-merge

解决方案


问题:两个存储库 A 和 B 中的文件是否应该是相同的文件?或者您是否希望将 A 中的所有文件添加为子目录并作为单独的文件保存?

解决方案1:是的,它们是相同的文件,需要合并这些文件。在这种情况下,您需要编辑文件以解决任何冲突。冲突标记 <<< 和 >>> 将添加到文件中。您需要编辑文件,以便它们包含合并后的内容。然后执行:

git add <file>
# after all file conflicts have been resolved and added
git commit

解决方案 2:不,来自 repo A 的文件都应该位于一个单独的子目录中,并与 repo B 中的文件分开。在这种情况下,您希望将 repo A 作为子树导入 repo B。使用 git 子树命令:

git subtree add -P <prefix> <repository> <ref>

例如:

git subtree add -P repo-A-dir url-to-repo-A master

推荐阅读