前置常识
LF
代表linux
格调的行尾字符\n
CRLF
代表windows
格调的行尾字符\r\n
个别的代码托管服务器都是linux
零碎,所以咱们的指标是这样:
无论你的开发人员是什么零碎,以什么换行结尾,到了代码托管零碎,对立以linux
为规范,也就是LF
结尾。
如何读取以后git config core.autocrlf的设置?
git config core.autocrlf
可能的值?
- true
- false
- input
true
提交时:将CRLF转换为LF
拉取时:将LF转换为CRLF
false
提交时:什么都不做
拉取时:什么都不做
input
提交时:将CRLF转换为LF
拉取时:什么都不做
windows零碎该怎么做?
windows
上的换行是以CRLF
结尾的,这条命令很符合。
git config core.autocrlf true
linux零碎该怎么做?
linux
上的换行是以LF
结尾的,这条命令很符合。
git config core.autocrlf input
我的项目中有windows和linux的开发人员该怎么做?
让windows
用户设置
git config core.autocrlf true
让linux
用户设置
git config core.autocrlf input
然而,上述的操作不太可控,比方我的项目外面成员有很多,我不可能挨个去叮咛并查看他们的设置。有没有更好的方法呢?
有,借助.gitattributes
在我的项目的根目录下增加一个.gitattributes文件,内容如下:
// .gitattributes* text eol=lf
下面的配置,意味着无论在什么操作系统上,当你检出文件时,所有的行结束符都会被转换为LF。这样能够确保在不同操作系统之间进行合作时,文件的行结束符始终保持统一。
疑难
疑难1:
git rm --cached -r .git reset --hard
这不是重置.gitignore
用的吗?这里须要吗?
疑难2:
增加.gitattributes后须要执行这个操作吗?
git add --renormalize .