git 本地仓库与远程仓库的强制合并
错误提示:
refusing to merge unrelated histories
The local repository is out of date
过程是这样的
今天在本地新建了一个 git 仓库,并往里添加了一些文件,也在本地提交了几次。
这时候再去 github 上新建了个仓库,然后把 github仓库添加到本地的仓库中。
git remote add rime git@github.com:KyleBing/rime-wubi86-jidan.git
可以看到已经添加了远程仓库:
pull 远程仓库的内容:
然后执行上传到 github 的时候出现下面错误:
错误原因
其实本地建的那个仓库和远程 github 仓库是两个独立的仓库,互不相关。
如果在建完 github 后再 git clone
到本地就不会出现该问题了。
解决办法
git pull
有个 --allow-unrelated-histories
参数,是为了合并两个不相关的仓库的历史,这个可以通过 git pull --h
查看帮助。
因为我们这两个仓库并没有冲突,可以直接合并:
git pull rime master --allow-unrelated-histories
这时候出现填写合并信息的窗口
填写保存后,结果显示,合并成功。
后续提交
# 提交更新到 github
kyle-mbp:Rime Kyle$ git push rime master
# 结果
Counting objects: 38, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (38/38), done.
Writing objects: 100% (38/38), 1.85 MiB | 305.00 KiB/s, done.
Total 38 (delta 20), reused 0 (delta 0)
remote: Resolving deltas: 100% (20/20), done.
To github.com:KyleBing/rime-wubi86-jidan.git
27c22af..bf39b8c master -> master
查看历史记录是这样的,可以看到本地 master
和远程 master
已经合并在一起了:
再看一下远程仓库的提交记录,已经能看到本地的提交记录了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。