1. CRLF和LF
git会通过CRLF和LF的配置来对源文件文本进行格式处理。
CRLF
是carriagereturnline feed的缩写,表示句尾使用回车换行两个字符(即我们常在Windows编程时使用"\r\n"换行),中文意思是回车换行。LF
line feed的缩写,中文意思是换行。表示表示句尾,只使用换行.CR
表示只使用回车.
CRLF->Windows-style
LF->Unix Style/Mac Style
2. git命令配置
2.1. AutoCRLF
core.autocrlf是git中负责处理line endings的变量,可以设置三个值--true,input,false
#提交时转换为LF,检出时转换为CRLF
$ git config --global core.autocrlf true
#提交时转换为LF,检出时不转换
$ git config --global core.autocrlf input
#提交检出均不转换
$ git config --global core.autocrlf false
-
设置为true,添加文件到git仓库时,git将其视为文本文件。它将把crlf变成lf,即windows格式转换为linux格式。
-
设置为false时,line-endings将不做转换操作。文本文件保持原来的样子。
-
设置为input时,添加文件git仓库时,git把crlf编程lf。当有人Check代码时还是lf方式。因此在window操作系统下,不要使用这个设置。
-
建议设置方式
Windows:(true)
提交上传时,将CRLF 转成 LF再提交;
切出下载时,自动将LF 转为 CRLF;
MAC/Linux: (input)
提交时, 将CRLF 转成 LF再提交;
切出时,保持LF即可
2.2. SafeCRLF
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
#允许提交包含混合换行符的文件
git config --global core.safecrlf false
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn