git LF 和 CRLF换行的问题
错误提示:
warning: LF will be replaced by CRLF in xxx The file will have its original line endings in your working directory
原因
注解:
**LF:Line Feed 换行**
**CRLF:Carriage Return Line Feed 回车换行键**
处理
1、不同操作系统下,处理行尾结束符的方法是不同的:
windows下:CRLF(表示句尾使用回车换行两个字符,即windows下的"\r\n"换行)
unix下:LF(表示句尾,只使用换行)
mac下:CR(表示只使用回车)
2、Git下处理“换行”(line ending)
core.autocrlf是git中负责处理line ending的变量,可以设置3个值:true,false,input。
(1)设置为true【config --global core.autocrlf true】
当设置成true时,这意味着你在任何时候添加(add)文件到git仓库时,git都会视为它是一个文本文件(text file)。
它将把crlf变成LF。
(2)设置为false【config --global core.autocrlf false】
当设置成false时,line endings将不做转换操作。文本文件保持原来的样子。
(3)设置为input时,添加文件git仓库时,git把crlf编程lf。当有人Check代码时还是lf方式。因此在window操作系统下,不要使用这个设置。
一般设置
Git设置
git config --global core.autocrlf false
git config --global core.safecrlf true
含义:
AutoCRLF
#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
#提交时转换为LF,检出时不转换
git config --global core.autocrlf input
#提交检出均不转换
git config --global core.autocrlf false
SafeCRLF
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
#允许提交包含混合换行符的文件
git config --global core.safecrlf false
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn