4

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

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

4

2 回答 2

4

由于您的.uni文件实际上是一个文本文件,我想它必须包含一些 NUL 字符(请参阅“如何确定 Git 将文件处理为二进制文件还是文本文件? ”)。

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

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

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

*.uni -text crlf diff

对于 Unicode 文件,查看“我可以让 git 将 UTF-16 文件识别为文本吗? ”,您可以:

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

您还应该确保:

于 2012-11-21T06:22:43.580 回答
0

.uni 文件的编码类型是否更改(例如 UTF-8 到 ANSI)?Git 似乎无法比较/合并不同编码类型的文件。请参阅我在这篇文章中给出的答案

于 2014-01-16T18:39:39.397 回答