如何解决由于删除分支中的文件而导致的合并冲突?
我创build了一个dialog
分支,当我尝试合并到master
分支。 有两个冲突。 我不知道如何解决CONFLICT (delete/modify)
。 你能告诉我该怎么办?
$ git checkout master $ git merge dialog CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree. Auto-merging src/com/DialogAdapter.java CONFLICT (content): Merge conflict in src/DialogAdapter.java Automatic merge failed; fix conflicts and then commit the result.
我打开src/DialogAdapter.java
,修正了冲突,并做了一个git add src/DialogAdapter.java
。 我还需要做什么?
冲突消息:
CONFLICT(删除/修改):在对话框中删除res / layout / dialog_item.xml并在HEAD中修改
意味着res/layout/dialog_item.xml
在您正在合并的“对话框”分支中被删除,但在HEAD(在您合并的分支中)被修改。
所以你必须决定是否
- 使用“
git rm res/layout/dialog_item.xml
”删除文件
要么
- 使用“
git add res/layout/dialog_item.xml
”接受HEAD的版本(可能在编辑之后)
然后你最终确定与“ git commit
”合并。
请注意,git会警告你,你正在创build一个合并提交,在罕见的情况下,你不想要的东西。 可能从案件不太less的那段时间开始。
我通常只运行git mergetool
,它会提示我,如果我想保留修改后的文件或保持删除。 这是最简单的方法,恕我直言,因为它是一个命令,而不是每个文件几个。
如果你在窗口上使用Git Gui,
- 中止合并
- 确保你在你的目标分支
- 从资源pipe理器中删除冲突的文件
- 重新扫描Git Gui(F5)
- 注意冲突的文件被删除
- 从提交菜单中select阶段已更改的文件提交(Ctrl-I)
- input提交评论,如“已删除的冲突文件”
- 提交(按Ctrl键)
- 现在,如果你重新启动合并,它将(希望)工作。