关于Git的CRLF
2019-06-27 本文已影响0人
冷师傅_
引子
我在Review同事提交的PR的时候,发现
strings.xml改动并不大,就是改了一个字母而已,但Github却把整个文件给Diff了,类似下图:heihei.png
原因
我们的项目初始开发是在
Windows平台的,而Windows平台的结束一行是由两个字符组成:回车\r和换行\n,对应CRLF。而OS X平台的结束一行则是由单个字符回车\r完成,对应LF。当本地的切换行编码和Repo端不一致的话,必然就会引起大面积的Diff。
解决方案
- 让本地的
Repo和远端Repo使用同一套切换行编码,要么是Windows版的CRLF,要么是OS X平台的LF。Android Studio自带切换,
A5D1644A-0291-48C2-944F-05CFF63A74A2.png
2.使用Git自带的切换设置,注意:Git是默认远端Repo是LF的.
# 查看Git对结束行编码的设置,
# git config --config core.autocrlf
# false:本地不做任何处理,和远端Repo保持一致
# input:只在提交的时候,做CRLF ----> LF 转换,签出的时候不做转换
# true:提交的时候做CRLF ----> LF转换,从远端更新的时候做 LF ----> CRLF 转换。
heihei.png