背景

初始化一个本地仓库并添加一个新文件(README.md),然后将本地仓库上传。

先 pull,因为两个项目不同,发现refusing to merge unrelated histories,无法合并。

注:查看解决方法,请直接跳过操作过程。

操作过程

新建项目并初始化

$ mkdir -p learning/test // 新建一个项目目录
$ cd learning/test // 进入项目目录
$ git init // 初始化仓库

关联远程仓库

$ git remote add origin https://git.oschina.net/hankewins/test.git

查看仓库地址

$ git remote -v
origin	https://git.oschina.net/hankewins/test.git (fetch)
origin	https://git.oschina.net/hankewins/test.git (push)

本地添加README.md并提交

$ touch README.md
$ git add README.md
$ git commit -m '添加README.md'
$ git push // 提示需设置push到远程仓库对应的分支

git push不成功,按提示操作

$ $ git push --set-upstream origin master // 设置提交的分支
$ git push // 继续推送
To https://git.oschina.net/hankewins/test.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://git.oschina.net/hankewins/test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
$ git pull // 拉取数据
$ git branch --set-upstream-to=origin/master // 设置仓库分支
$ git pull // 继续拉取数据
fatal: refusing to merge unrelated histories // 提示合并pull两个不同的项目

原因

fatal: refusing to merge unrelated histories

当前模式下本地仓库与远程仓库是两个不同的项目,git pull 合并项目会提示相关信息,添加 –allow-unrelated-histories参数即可解决。

解决

$ git pull origin master --allow-unrelated-histories