• home > tools > versionControl > git >

    git版本冲突:not concluded your merge (MERGE_HEAD exists). hint: P

    Author:zhoulujun Date:

    pull冲突,合并冲突出现MERGE_HEAD exists。造成git无法pull push情况。这个时候本人提供三种解决办法。git merge --abort ,git reset --hard origin yourBranch,git push -u origin yourBranch -f

    今天在submodule里面先commit,然后用命令行pull,发现需要merge ,取消了merge,然后再pull 或者push,就会提示

    You have not concluded your merge (MERGE_HEAD exists). hint: Please, commit your changes

    首先确定是保留本地的修改。想intellij编辑器无所谓,因为有本地history,可以随时恢复

    放弃merge解决

    取消某次合并,命令

    git merge --abort #如果Git版本 >= 1.7.4
    git reset --merge #如果Git版本 >= 1.6.1

    我是选择 git merge --abort  

    git merge --abort  

    此命令回到解决冲突之前的状态。

    该命令仅仅在合并后导致冲突时才使用。

    git merge --abort将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未commit的文件,git merge --abort在某些情况下将无法重现合并前的状态。(特别是这些未commit的文件在合并的过程中将会被修改时)。建议使用git-stash命令将这些未commit文件暂存起来,并在解决冲突以后使用git stash pop把这些未commit文件还原出来。

    暂存命令stash使用

    git stash #将本地修改暂时存储起来
    git stash list #查看暂存的信息
    git stash pop  #应用最近一次暂存的内容
    git stash apply stash@{1} #应用指定版本的暂存内容
    git stash clear  #清空暂存栈

    回退到某个版本并应用指定的几次提交

    git reset --hard 1d7444 #回退到某个版本
    git cherry-pick 626335 #将某次commit的更改应用到当前版本
    git cherry-pick …
    git push origin HEAD --force  #强制提交

    最好选择第一种方法。

    重置git head解决

    1. 执行git fetch --all

    2. 执行git reset --hard origin/yourBranch ----> git reset 把HEAD指向刚刚下载的最新的版本

    3. pull主分支下的代码

    4. 解决冲突,然后提交代码到自己的分支那里

    本地覆盖远程推送

    git push -u [远程分支] -f 

    git push -u origin yourBranch -f


    参考文章:

    https://blog.csdn.net/daotiao0199/article/details/82757056



    转载本站文章《git版本冲突:not concluded your merge (MERGE_HEAD exists). hint: P》,
    请注明出处:https://www.zhoulujun.cn/html/tools/VCS/git/8609.html