如何合并两个将二进制文件转换为文本的更改?

时间:2016-05-10 09:18:13

标签: git git-merge

git的新手,所以不太确定如何解决这个问题。情况如下:

Rob处理二进制文件,并将其转换为文本格式,然后进行了一些更改。

乔也做了同样的事。

罗普把他的改变推向原点。

乔恩试图将他的变化推向原点。但是,由于合并冲突,他无法做到。 Jon无法合并,因为这两项更改都涉及二进制 - >文字+更改。

Jon尝试git pull --rebase,但仍然是错误“#34;无法合并二进制文件"。

可以做些什么?假设git不能应用Jon的更改,因为它无法理解原始二进制文件和Jon的文本文件之间的区别,因此它无法应用这些更改到文件(文本)Rob已经推到原点。

2 个答案:

答案 0 :(得分:1)

如果我是乔恩,我会这样做: 假设你的远程分支是 master ,而url是 path / some.git

  1. mkdir tmp cd tmp git init git remote add origin path/some.git git fetch origin master git checkout FETCH_HEAD

  2. 使用 beyond-compare 等工具将Jon的已更改文本与tmp的主文本合并

  3. git add . git commit git push origin HEAD:master cd - rm -rf tmp

答案 1 :(得分:1)

Jon可以尝试合并它,然后选择所需的两个文件中的哪一个:

git pull origin master                         # this will fail with a conflict
git checkout --theirs <the file in question>   # this will overwrite the file with Ron's version of the file
# fix any other merge conflict
git commit                                     # finish merge