在IDEA中commit的时候,会遇到这个警告。html
其实只需将右下角为CRLF的文件换为LF就好了。git
详细的关于这方面的,有一篇文章很是好:github
原文连接编程
目录:windows
CRLF 是carriagereturnline feed的缩写。中文意思是回车换行。ide
LF是line feed的缩写,中文意思是换行。学习
在学习git软件,安装git到configuring the lien ending conversion时,有三个选项。网站
这里面讲到了作两个操做(Checkout,Commit)的三种处理line endings的操做(Windows-style,Unix-style,As-is)。操作系统
为何会出现这三种处理line endings(行尾结束符)呢?在Git的帮助页面给出了很好的解释。.net
Reference From:https://help.github.com/articles/dealing-with-line-endings
If you're using Git to collaborate with others on GitHub, ensure that Git isproperly configured to handle line endings.
Every time you press return on your keyboard you're actuallyinserting an invisible character called aline ending. Historically, differentoperating systems have handled line endings differently.
When you view changes in a file, Git handles line endings in its own way.Since you're collaborating on projects with Git and GitHub, Git mightproduce unexpected results if, for example, you're working on a Windows machine,and your collaborator has made a change in OS X.
意思很好理解,就不翻译了。重视因为历史的缘由,各类不一样的操做系统在处理行尾结束符采起了不一样的处理方法。而Git和GitHub
CRLF->Windows-style
LF->Unix Style
CR->Mac Style
CRLF表示句尾使用回车换行两个字符(即咱们常在Windows编程时使用"\r\n"换行)
LF表示表示句尾,只使用换行.
CR表示只使用回车.
在Git经过下面的命令配置
$git config --global core.autocrlf true # Configure Git on Windows to properly handle line endings
解释:core.autocrlf是git中负责处理line endings的变量,能够设置三个值--true,inout,false.
设置成三个值会有什么效果呢?
If core.autocrlf
is set to true, that means that any time you add a file to the git repo that git thinks is a text file, it will turn all CRLF line endings to just LF before it stores it in the commit.。
设置为true,添加文件到git仓库时,git将其视为文本文件。他将把crlf变成lf。【2】
If core.autocrlf
is set to false, no line-ending conversion is ever performed, so text files are checked in as-is. This usually works ok。【2】
设置为false时,line-endings将不作转换操做。文本文件保持原来的样子。
设置为input时,添加文件git仓库石,git把crlf编程lf。当有人Check代码时仍是lf方式。所以在window操做系统下,不要使用这个设置。
这是参考文献2给的解释但愿能帮助你们。
Yet another way to show howautocrlf
works
1) true: x -> LF -> CRLF
2) input: x -> LF -> LF
3) false: x -> x -> x
where x is either CRLF (windows-style) or LF (unix-style) and arrows stand for
file to commit -> repository -> checked out file
更为复杂的配置命令见网站:https://www.kernel.org/pub/software/scm/git/docs/git-config.html
关于LF和CRLF讨论见:http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf
You can also provide a special--global
flag, which makes Git usethe same settings for line endings acrossevery local Git repository on your computer.
【1】https://help.github.com/articles/dealing-with-line-endings
【2】http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf