由于冲突,Git合并失败

时间:2018-03-21 13:17:00

标签: git

我是git的新手,当我尝试将一个分支合并到另一个分支时,我遇到了一堆错误,如下所示:

CONFLICT (modify/delete): src/controller/app.js deleted in feat_branch and modified in HEAD. Version HEAD of src/controller/app.js left in tree.
CONFLICT (modify/delete): src/controller/service.js deleted in feat_branch and modified in HEAD. Version HEAD of src/controller/service.js left in tree.
...

我尝试使用此命令git merge feat_branch --no-ff

进行合并

我做错了什么或者为什么会产生这些错误?

1 个答案:

答案 0 :(得分:3)

这些不是错误。它们是合并冲突(注意,git本身不使用“错误”这个词,而是说“冲突”)。

这是一个重要的区别:git中的冲突是正常的,无害的。它们意味着为您工作,但不是问题。 Git非常擅长将冲突保持在尽可能小的范围内(与一些旧的版本控制系统相反),并且通常也非常明确且对其消息有帮助。

在这种情况下,冲突正是它所说的:有人删除了feat_branch中的文件,但你同时修改了同一个文件。如果您从feat_branch开始就没有修改过文件,那么git会在合并期间删除它。如果他们没有删除它,那么您的更改就会被保留。但在这种情况下,git需要一个人的决定,因为你显然有另一个意图,而不是删除文件的男/女。

如果您输入git status,您将获得一个有用的注释,提示您选择哪个命令选择哪个分辨率(即删除文件或保留文件)。