每当我尝试推入Git时,我得到这个:
You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you can merge.
Run Code Online (Sandbox Code Playgroud)
跑步git status我得到:
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
或者跑步git ls-files -u我一无所获.
跑步git add .和再次尝试没有任何区别.
这是怎么回事?
dah*_*byk 62
你最终得到一个空的合并提交(两个父母)或只是一个空提交?在后一种情况下,您可能已删除.git/MERGE_HEAD.
更新:MERGE_HEAD您可以使用git merge --abort(从git 1.7.4开始)或git reset --merge(从git 1.6.2开始),而不是手动删除.
还值得一提的是,至少从git 1.8.3开始(可能更早?)status如果实际的合并正在进行并且需要提交(--no-commit例如,如果你指定的话),你应该看到这样的消息:
# On branch master
# All conflicts fixed but you are still merging.
# (use "git commit" to conclude merge)
#
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
如果你没有看到这个并且仍然收到MERGE_HEAD警告,那么就会搞砸了一些东西,你应该只是--abort回到一个干净的状态.
评论的附加细节
在合并,混帐会在git的文件夹的根目录(旁边HEAD,ORIG_HEAD,大概FETCH_HEAD等),一个MERGE_HEAD文件跟踪有关正在进行的合并(具体的SHA(S)提交(S信息)被合并到当前的HEAD中).如果删除它,Git将不再认为合并正在进行中.显然,如果合并确实在进行中,那么您不希望删除此文件.