GitLab、CRLF(/r/n)、CRLF(/r/n)、CRLF(/r/n)处理
在windows和linux混合开发的过程中,使用git管理代码,会出现一些莫名的错误,今天说的这个是gitlab的一个大坑,看到大神们写的文章后,我不啰嗦直接给问题和解决方案。如下:
问题原因:在windows环境下默认的换行为CRLF(/r/n),在linux环境下默认的为LF(/n),在Mac环境下默认的为CR(/r),开发过程中git有点聪明过头了,自己会默认自动转换换行
问题描述:然后在以linux为服务器的时候,就会出现换行错误
解决方案:综合各位大神的解决方案,最直白的方式,(LZ的开发环境为windows)打开命令窗口全局修改git即可,命令如下:
git config --global core.autocrlf false
git config --global core.safecrlf true
Windows:(true)
MAC/Linux:(input)
core.autocrlf
true // 表示自动更换crlf,windows下如果checkout是\n,则自动换为\r\n,在提交时在自动换回\n
input
// 自动把\r\n换为\n
false
// 就是不作处理
core.safecrlf
true
// 禁止提交混合\n和\r\n的文件
false
// 允许提交
warn // 提交时产生警告
Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf
来打开此项功能,如果是在Windows系统上,把它设置成true
,这样当签出代码时,LF会被转换成CRLF:
$ git config --global core.autocrlf true
Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf
设置成input来告诉
Git 在提交时把CRLF转换成LF,签出时不转换:
$ git config --global core.autocrlf input
这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。
如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false
取消此功能,把回车符记录在库中:
$ git config --global core.autocrlf false
上一篇: nifi ExecuteScript使用
下一篇: C++ 跨应用程序发送消息