.gitattributes
.gitattributes文件是一个文本文件,文件中的一行定义一个路径的若干属性。以行为单位设置一个路径下所有文件的属性,格式如下:
要匹配的文件模式 属性1 属性2
GRLF和LF
CRLF,LF都是用来表示文本换行的方式。CR代表回车,对应字符\r。LF表示换行,对应字符\n。不同操作系统文本使用的换行符各不相同。Windows系统使用的是CRLF,Unix系统(包括Linux,MacOS近些年的版本)使用的是LF。
* text=auto
# 文件的行尾自动转换。如果是文本文件,则在文件入Git库时,行尾自动转换为LF。如果已经在入Git库中的文件的行尾是GRLF,则文件在入Git库时,不再转换为LF。
*.txt text
# 对于.txt文件,标记为文本文件,并进行行尾规范化。
*.jpg -text
# 对于`.jpg`文件,标记为非文本文件
*.vcproj text eol=crlf
# 对于.vcproj文件,标记为文本文件,在文件入Git库时进行规范化,行尾转换为LF。在检测到出工作目录时,行尾自动转换为GRLF。
*.sh text eol=lf
# 对于sh文件,标记为文本文件,在文件入Git库时进行规范化,即行尾为LF。在检出到工作目录时,行尾也不会转换为CRLF(即保持LF)。
*.py eol=lf
# 对于py文件,只针对工作目录中的文件,行尾为LF。
属性
text
控制行尾的规范性。如果一个文本文件是规范的,则Git库汇总该文件的行尾总是LF。对于工作目录,除了text属性之外,还可以设置eol属性或core.eol配置变量。
eol
设置行末字符。
eol=lf ,入库时将行尾规范为LF,检出时禁止将行尾转换为CRLF
eol=crlf,入库时将行尾规范为LF,检出时将行尾转换为CRLF。