关于Git的CRLF
2019-06-27 本文已影响0人
冷师傅_
引子
我在Review同事提交的PR的时候,发现
heihei.pngstrings.xml
改动并不大,就是改了一个字母而已,但Github
却把整个文件给Diff
了,类似下图:
原因
我们的项目初始开发是在
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 转换。