Git可以对一些特定的子目录或子文件运行某些设置项,这些设置项称为Git属性,它们可以在.gitattributes文件内设置。
使用属性,可以对个别文件或目录定义不同的合并策略,让Git知道怎样比较非文本文件;在你提交或签出前让Git过滤内容。
二进制文件
可以用Git属性让其知道哪些是二进制文件,以及指示如何处理这些文件。
识别二进制文件
一些文件看起来是文本文件,但其实会作为二进制数据被对待。
比如,Mac的Xcode项目的.pbxproj结尾的文件,它是记录IDE写到磁盘的JSON数据集。如果有2个人改变了它,你通常无法合并和比较内容,而只有通过机器才能进行识别和操作,此时需要将其当做二进制文件处理。
在.gitattributes文件设置
*.pbxproj -crlf -diff
现在Git回尝试转换和修正CRLF(回车换行)问题,也不会在项目中运行git show或git diff时,比较不同的内容。
在Git 1.6及之后的版本中,可以用一个宏代替-crlf -diff
*.pbxproj binary
【TODO】
1。https://git-scm.com/book/zh/v1/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-Git%E5%B1%9E%E6%80%A7