Git合并 - 二进制文件冲突解决方案

6
我该如何在git合并操作中解决二进制文件冲突呢?以下是我已经完成的步骤:
git checkout master
git fetch origin
git merge working_branch

... [Conflicts] ...

git status
...
Unmerged paths:
        both modified:   Path/file.dll
        ...

我想保留在working_branch中的版本,丢弃在master中的版本。我该怎么做?

通常情况下,您会选择其中一个版本,除非在git之外有一种可行的方法来创建某种合并版本(这在DLL中不太可能,但在例如JAR或ZIP文件中完全可能...)。 您可以使用例如git checkout -- :2:Path/file.dllgit checkout -- :3:Path/file.dll分别选择HEAD和MERGE_BRANCH版本中的一个。 有关更多详细信息,请参见git help merge... - twalberg
糟糕...语法错误了 - 应该是 git show :2:Path/file.dll > Path/file.dll,对于第三个条目也是类似的...这不适用于 git checkout;虽然有替代语法 - git checkout --ours -- Path/file.dllgit checkout --theirs -- Path/file.dll... - twalberg
这个回答解决了你的问题吗?解决Git二进制文件冲突 - starball
1个回答

11

今天早些时候找到了答案:

git checkout --theirs Path/file.dll
git add Path/file.dll
git commit -m "Resolved merge conflict by checking out file from working_branch and adding it to the master"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接