如何处理不是二进制文件(git)的文件

时间:2012-11-21 03:45:50

标签: git

我有一个文件调用a.uni,我必须合并解决方案。 但是git将a.uni视为二进制文件。 当我合并解决方案时,它总是显示:

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

2 个答案:

答案 0 :(得分: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文件中指定合并管理器,该文件将根据您的策略进行合并。

至少,如在“why does git treat some cpp files as binary?”中,您可以尝试指定(仍然是.gitattributes文件):

*.uni -text crlf diff

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

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

您还应该确保:

答案 1 :(得分:0)

.uni文件的编码类型是否发生了变化(例如UTF-8为ANSI)? Git似乎无法比较/合并不同编码类型的文件。请参阅answer I gave on this post