如何结束文件合并?


103

在Git中合并文件后,我尝试拉存储库,但出现错误:

您尚未完成合并。(MERGE_HEAD存在)

如何达成合并?

Answers:


94

检查git status您存储库的状态()。每个未合并的文件(在您自己解决冲突后)都应添加(git add),如果没有未合并的文件,则应添加git commit


11
但是,如果一切都已提交(git status显示一个干净的工作目录)并且仍然发生上述错误怎么办?
Marius Soutier

1
@Marius确保您运行的是标准格式,git status而不要使用一些别名来过滤掉任何消息。在当前版本中,当您运行git status时,它向您显示消息您应该怎么做以“结束合并”。如果你是绝对相信你拥有的一切合并,你会不会松动任何东西,那么你可以简单地在git的删除文件/合并*,你试图合并这店什么的都有,和默认提交信息为合并
MBO

1
谢谢,这就是我最终要做的,但是以某种方式,这似乎有问题。如果您合并并提交了所有内容,那么MERGE_HEAD如何存在?
Marius Soutier

2
是的,我遇到的问题与马吕斯(Marius)相同,已经完成合并,解决了冲突,但是现在(以某种方式)没有要提交的内容。必须按照建议手动删除MERGE *文件。
西蒙·伊斯特

@johndpope power(“ tnx”,100)
knagode 2014年

31

注意和更新:

Git1.7.4(2011年1月)以来,您有git merge --abortgit reset --merge当合并正在进行时,它等同于“ ”。

但是,如果您想完成合并,而又不需添加任何内容,那么粗略rm -rf .git/MERGE*就足以让Git忘记当前合并。


如果删除MERGE_HEAD,结果提交是否只有一个父项,因此就没有合并分支的历史记录?
杰森·古玛

@JasonGoemaat考虑到我们尝试中止合并,因此无论如何都不会出现“结果提交”。
VonC


1

如果在SourceTree中遇到此错误,请转到“操作”>“解决冲突”>“重新启动合并”。

使用的SourceTree版本是1.6.14.0


0

我遇到了同样的错误,我确实关注了在google上找到的文章,从而解决了我的问题。 您尚未完成合并


始终欢迎提供解决方案的链接,但请在答案中添加必要的信息,因为该链接可能已过期。
slfan '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.