问题描述:
今天一天的工作结束,当我准备提交代码的时候,git提示我在提交之前需要先使用 git pull 同步一下远程仓库的代码。
这也没有什么问题,远程仓库的代码有些没有同步到本地,首先git pull 也是必须的操作
但是当我使用git pull 命令同步一下远程仓库代码的时候,给我了一个这样的提示:
拒绝合并无关的历史
关于这个提示信息,git的官方文档是这样说明的
By default, git merge command refuses to merge histories that do not share a common ancestor. This option can be used to override this safety when merging histories of two projects that started their lives independently. As that is a very rare occasion, no configuration variable to enable this by default exists and will not be added.
默认情况下,git merge命令拒绝合并不共享共同祖先的历史记录。合并两个独立开始的项目的历史记录时,可以使用此选项来覆盖此安全性。因为这是非常罕见的情况,所以默认情况下不存在用于启用此功能的配置变量,因此不会添加。
问题产生的原因:
远程的仓库和本地的仓库我是分别单独创建的,远程仓库创建的时候,添加了一些默认的文件,本地项目里面是没有这些文件的。
当我在本地仓库添加了一些其他功能文件,再提交合并的时候就出现了这样的错误提示
解决方案:
来使用 git pull 命令拉取远程仓库代码的时候添加上一下配置,这样基本就可以解决这个问题了
git pull origin master --allow-unrelated-histories
总结:
遇到问题多搜索一下,码友的力量是很强大的,说不一定其他码友也碰到过这样的问题,并且已经解决了!
上面的方案也只是解决了我自己遇到的问题,各位码友碰到问题还是要具体情况具体分析,解决自己遇到的问题!
参考文档:
https://www.lddblog.com/2017/09/03/git-pull-refusing-merge.html