首页 > 技术文章 > Git中的core.autocrlf选项

outs 2017-05-26 17:19 原文

项目的开发环境为Windows,在Linux环境下编译,使用Git进行版本控制。

在安装好Git和TortoiseGit后,从远端clone,遇到一个奇怪的问题,Shell脚本中的LF总是被替换成了CRLF,最后发现是在Git的安装过程中有一项没有被配置好。

 

在Windows下,由回车CR(0x0D)(\r)和换行LF(0x0A)( \n))共同标志一行的结束。

而在Linux和Mac环境下,每一行的结束仅有一个换行LF(0x0A)(\n)。

在Git中有一项core.autocflf配置项,它可以被配置为true,false和input,它们分别表示:

1 // 提交时转换为LF,检出时转换为CRLF
2 git config --global core.autocrlf true
3 
4 // 提交时转换为LF,检出时不转换
5 git config --global core.autocrlf input
6 
7 // 提交检出均不转换
8 git config --global core.autocrlf false

 使用上述的最后一条命令,将core.autocrlf配置为false,即不开启自动转换功能。之后重新clone,本地仓库中的Shell脚本中不再出现CR。检查我的Git配置,发现core.autocrlf被配置为了true。这样,在从远端clone仓库时,Shell脚本中的LF就被替换成了CRLF。

推荐阅读