git的新手,所以不太确定如何解决这个问题。情况如下:
Rob处理二进制文件,并将其转换为文本格式,然后进行了一些更改。
乔也做了同样的事。 罗普把他的改变推向原点。乔恩试图将他的变化推向原点。但是,由于合并冲突,他无法做到。 Jon无法合并,因为这两项更改都涉及二进制 - >文字+更改。
Jon尝试git pull --rebase
,但仍然是错误“#34;无法合并二进制文件"。
可以做些什么?假设git不能应用Jon的更改,因为它无法理解原始二进制文件和Jon的文本文件之间的区别,因此它无法应用这些更改到文件(文本)Rob已经推到原点。
答案 0 :(得分:1)
如果我是乔恩,我会这样做: 假设你的远程分支是 master ,而url是 path / some.git
mkdir tmp
cd tmp
git init
git remote add origin path/some.git
git fetch origin master
git checkout FETCH_HEAD
使用 beyond-compare 等工具将Jon的已更改文本与tmp的主文本合并
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