首页 > 解决方案 > 将 GitHub 存储库移动到另一个存储库时出错

问题描述

我有一个funfun历史悠久的 GitHub 存储库。我有另一个 GitHub 存储库TBD

现在我想将文件夹移动到文件夹funfunTBD,那么从现在开始我将只在存储库上工作TBDfunfun我希望保留提交历史。

我遵循了这个解决方案。结果如下:

MBP:TBD$ ls
OCaml       README.md
MBP:TBD$ git remote add funfun ../funfun
MBP:TBD$ git fetch funfun --tags
warning: no common commits
remote: Counting objects: 11874, done.
remote: Compressing objects: 100% (4286/4286), done.
remote: Total 11874 (delta 9020), reused 9813 (delta 7494)
Receiving objects: 100% (11874/11874), 21.98 MiB | 20.68 MiB/s, done.
Resolving deltas: 100% (9020/9020), done.
From ../funfun
 * [new branch]      master     -> funfun/master
MBP:TBD$ git merge --allow-unrelated-histories funfun/master
warning: Cannot merge binary files: .DS_Store (HEAD vs. funfun/master)
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Auto-merging .DS_Store
CONFLICT (add/add): Merge conflict in .DS_Store
Automatic merge failed; fix conflicts and then commit the result.
MBP:TBD$ git remote remove funfun
MBP:TBD$ ls
Addins          bin         package-lock.json   units
OCaml           config          package.json        views
README.md       git.sh          public          webpack.config.js
addin           models          routes
app.js          output.csv      ssl

当我在TBDGitHub 的网站上查看时,funfun并没有添加。

是因为Automatic merge failed; fix conflicts and then commit the result.? 有谁知道如何修理它?

PS:要么有一个子文件夹TBD\funfun\,要么把所有的子文件夹都放在funfun下面TBD(如上)都可以,之后我总是可以安排文件夹。

标签: github

解决方案


你已经完成了大部分工作。现在它只是关于修复合并冲突。让我们一一解决。

CONFLICT (add/add): Merge conflict in README.md

这个很直截了当。该README.md文件有一些冲突,您可以通过编辑文件并保存其中所需的任何内容来手动修复这些冲突。确保删除带有<<<<<<<,=======>>>>>>>Git 用于显示冲突的行。到下一个。

CONFLICT (add/add): Merge conflict in .DS_Store

是在 Mac 上创建的.DS_Store,您可以通过运行来查看它ls -a,并且通常应该通过将其添加到.gitignorerepo 目录根目录的文件中来从源代码管理中忽略它。由于尚未完成,因此该文件也发生了冲突。因此,现在您应该首先.DS_Store通过在 repo 目录的根目录运行以下命令,从您的 repo 目录中删除所有出现的 :

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

接下来,如果您已经有一个.gitignore文件,请在其中添加一行.DS_Store。否则,通过命令在 repo 目录的根目录创建并添加条目

echo .DS_Store >> .gitignore

接下来只需使用通常的方式提交更改

git commit -am "Commit message"

然后推送更改

git push origin master

完成工作!


推荐阅读