2012-11-21 64 views
4

我有一个文件调用a.uni,我必须合并解决方案。 但git把a.uni当成二进制文件。 当我合并的解决方案,它总是显示:如何处理文件不是二进制文件(git)

警告:不能合并二进制文件:a.uni(HEAD与549af46 ...测试) 错误:无法适用549af46 ...测试 提示:后解决冲突,标记修正后的路径 提示:用'git add'或'git rm' 提示:并用'git commit'提交结果 其他人可以帮我! 非常感谢。

+0

那么,.uni文件中有什么?你的.gitattributes文件的内容是什么? – Perception

+0

实际上,它只是uni文件中的一个文本,并且在我的存储库中没有.gitattributes。 – kane

回答

4

由于您的.uni文件实际上是一个文本文件,我想它必须包含一些NUL字符(请参阅“How to determine if Git handles a file as binary or as text?”)。

这取决于您想要如何管理合并。

如“Tell git not to merge binary files but to choose”中所述,您可以在.gitattributes文件中指定合并管理器,该合并管理器将根据您的策略进行合并。

至少,在 “​​”,你可以尝试,并指定(仍然离子的.gitattributes文件):

*.uni -text crlf diff 

对于Unicode文件,在看 “Can I make git recognize a UTF-16 file as text?”,您可以:

  • 任一定义自定义的diff或合并工具支持该格式: git config --global diff.tool vimdiff ; git difftool commit1 commit2
  • 或定义喜欢的属性: * .uni差异合并-crlf

你也应该确保:

+0

现在,我知道为什么git将我的文件视为二进制文件。因为它是一个unicode文件。但我仍然不知道如何解决这个问题~~~ – kane

+0

@ user1584490你试过'* .uni -text crlf diff' gitattributes指令吗? – VonC

+0

我试过了,但它不起作用~~ – kane

相关问题