我是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
我做错了什么或者为什么会产生这些错误?
答案 0 :(得分:3)
这些不是错误。它们是合并冲突(注意,git本身不使用“错误”这个词,而是说“冲突”)。
这是一个重要的区别:git中的冲突是正常的,无害的。它们意味着为您工作,但不是问题。 Git非常擅长将冲突保持在尽可能小的范围内(与一些旧的版本控制系统相反),并且通常也非常明确且对其消息有帮助。
在这种情况下,冲突正是它所说的:有人删除了feat_branch
中的文件,但你同时修改了同一个文件。如果您从feat_branch
开始就没有修改过文件,那么git会在合并期间删除它。如果他们没有删除它,那么您的更改就会被保留。但在这种情况下,git需要一个人的决定,因为你显然有另一个意图,而不是删除文件的男/女。
如果您输入git status
,您将获得一个有用的注释,提示您选择哪个命令选择哪个分辨率(即删除文件或保留文件)。