首页 文章

如何修复由于删除分支中的文件而导致的合并冲突?

提问于
浏览
137

我创建了一个 dialog 分支,当我尝试将它合并到 master 分支时 . 有2个冲突 . 我不知道如何解决 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 . 我还需要做什么?

3 回答

  • 3

    冲突消息:

    CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD
    

    表示在合并的'dialog'分支中删除了 res/layout/dialog_item.xml ,但在HEAD中修改了(在您要合并的分支中) .

    所以你必须决定是否

    • 使用“ git rm res/layout/dialog_item.xml ”删除文件

    要么

    • 使用“ git add res/layout/dialog_item.xml ”从HEAD接受版本(可能在编辑之后)

    然后你用“ git commit ”完成合并 .

    请注意,git会警告您正在创建合并提交,在(罕见)情况下它是您不想要的 . 可能仍然是从所述案件不那么罕见的日子开始 .

  • 43

    我通常只是运行 git mergetool ,它会提示我是否要保留修改后的文件或保留它 . 这是恕我直言的最快方式,因为它是一个命令而不是每个文件几个 .

  • 193

    如果你在Windows上使用Git Gui,

    • 中止合并

    • 确保您在目标分支上

    • 从资源管理器中删除冲突文件

    • 重新扫描Git Gui的变化(F5)

    • 请注意,删除了冲突文件

    • 从“提交”菜单中选择要提交的阶段已更改文件(Ctrl-I)

    • 输入提交评论,如"deleted conflicting file"

    • 提交(ctrl-enter)

    • 现在如果你重新启动合并,它(希望)会起作用 .

相关问题