之前在项目中在向git提交代码的时候,由于是在Windows平台下,每次都会有一个warning:大致是说LF will be replaced by CRLF,因为当时纳品比较急,所以在确认不会有很大问题后,就没有再去追究。昨天同事在使用git的时候又遇到了同样的问题,关键是还遇到个问题导致Beyond Compare在比较本地SVN代码与git目录下代码的时候,很多source文件显示是不一样的,但是在打开之后又显示都一样。这样就很郁闷,本来想看修改文件的差异,这种情况直接就无奈了。
于是就做了一番调查。先说为什么git会报warning,普及一个知识,LF和CRLF在文本中都是代表new line的意思,只是LF用于Linux、Unix等系统下,而CRLF主要用于Windows下。而git设置里边有一个autocrlf的配置,默认情况下,他的设置是为true,你可以通过git config core.autocrlf来看你的配置。如果这个是true的话,每次在你向git本地库中添加文件的时候,都会默认的把所有的CRLF转为LF,而当你从git上checkout的时候,这些文件又会把LF转为CRLF。这个设置主要是为了支持一个项目中的跨平台开发而用的。Windows下设置为true还是比较合适的。
既然知道为什么会有waning了,那么Beyond Compare又是怎么回事?打开Beyond Compare的文件比较设置,会有一个比较的规则设定,如图 继续阅读





