如何处理非二进制文件(git)



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

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

由于.uni文件实际上是一个文本文件,我认为它中必须有一些NUL字符(请参阅"如何确定Git将文件处理为二进制还是文本?")。

这取决于您希望如何管理合并。

正如"告诉git不要合并二进制文件,而是选择"中所提到的,您可以在.gitattributes文件中指定一个合并管理器,该管理器将根据您的策略进行合并。

至少,在"为什么git将一些cpp文件视为二进制文件?"中,您可以尝试指定(仍然是.gitattributes文件):

*.uni -text crlf diff

对于Unicode文件,看看"我能让git将UTF-16文件识别为文本吗?",你可以:

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

您还应该确保:

  • 您有git1.7.10+(它有更好的UTF-8支持)
  • 设置了utf-8设置:请参阅"git,msysgit,重音符号,utf-8,最终答案">

.uni文件的编码类型是否更改(例如UTF-8更改为ANSI)?Git似乎无法比较/合并不同编码类型的文件。看看我在这篇帖子上给出的答案。

最新更新