**
refusing to merge unrelated histories
**
这是因为远程仓库已经存在代码记录了,并且那部分代码没有和本地仓库进行关联,我们可以使用如下操作允许pull未关联的远程仓库旧代码:
解决方法一:
先合并远程与本地代码的合并
$:git merge --abort //中止合并
$:git reset --merge //重新合并
$:git pull //从新拉取
建议先提交/push一下,保持远程的一致
执行:
$:git merge dev --allow-unrelated-histories //dev合并
还有:git pull 或者 git push 再拉去或者推送是报错
(再次执行合并merge操作-merge into current)
解决方法二:
如果本地与远程代码是一致的。不需要merge。直接执行:
git merge dev --allow-unrelated-histories //合并
git pull dev --allow-unrelated-histories //拉去
git push dev --allow-unrelated-histories //推送
即可解决报错refusing to merge unrelated histories 的问题
You have not concluded your merge (MERGE_HEAD exists). hint: Please, commit your changes before merging. Exiting because of unfinished merge.
Git fetch:只是从远程获取最新版本到本地,不会merge(合并)
$:git fetch origin master //从远程的origin的master主分支上获取最新版本到origin/master分支上
$:git log -p master..origin/master //可比较本地的master分支和origin/master分支的区别
$:git merge origin/master //合并
也可以直接远程merge合并到本地:
$:git pull origin master //git fetch 和 git merge
好了,正式说解决error: You have not concluded your merge (MERGE_HEAD exists)的问题:
解决一:
$:git merge --abort //中止合并
$:git reset --merge //重新合并
$:git pull //从新拉取
解决二:
$:git fetch --all //获取远程代码
$:git reset --hard origin/master //相当重新设置分支-清零
$:git fetch //重新赋值
这个方法会舍弃本地代码-清零。再远程的拉取覆盖