Ios 为什么在版本控制系统中将.pbxproj文件视为二进制文件?

Ios 为什么在版本控制系统中将.pbxproj文件视为二进制文件?,ios,xcode,git,macos,cvs,Ios,Xcode,Git,Macos,Cvs,很少有地方提到.pbxproj文件应该在cvs或git中作为二进制文件提交/导入。它看起来像文本格式的脚本文件。这一建议背后的原因是什么,它应该被视为二进制 作为一个复杂的属性列表,pbxproj并不是真正的可合并的,而是作为JSON管理的 通常的设置在.gittributes中: *.pbxproj -crlf -diff -merge 作为: 这可以防止Git尝试修复换行符、在差异中显示它并将其从合并中排除 另一种方法是: *.pbxproj binary merge=union 正如e

很少有地方提到.pbxproj文件应该在cvs或git中作为二进制文件提交/导入。它看起来像文本格式的脚本文件。这一建议背后的原因是什么,它应该被视为二进制

作为一个复杂的属性列表,pbxproj并不是真正的可合并的,而是作为JSON管理的

通常的设置在
.gittributes
中:

*.pbxproj -crlf -diff -merge
作为:

这可以防止Git尝试修复换行符、在差异中显示它并将其从合并中排除

另一种方法是:

*.pbxproj binary merge=union
正如e所说,这并不奏效

问题是大括号经常会变得不合适,这使得文件无法读取。诚然,tho在大多数情况下都能正常工作,但失败的次数可能是四分之一


On merge=union:感谢VonC的回答和链接。。在没有merge=union功能的情况下,仅仅将项目文件视为二进制文件有什么问题?@nav1729只要git不尝试合并它,这也应该可以。这是否意味着git会合并标记为二进制的文件?@nav1729是的,对于这些文件来说,这确实意味着二进制文件。或类似二进制(无差异,无合并)