在windows和linux混合开发的过程中,使用git管理代码时会出现一些莫名其妙的错误。今天我要说的是gitlab的一个大坑。看完大师们写的文章,我就不赘述了,直接说明问题和解决办法。计划。如下:
问题原因:在Windows环境下,默认更改为CRLF(/r/n),在Linux环境下,默认更改为LF(/n),在Mac环境下,默认更改为CR(/r) 。开发过程中,git有点混乱 你太聪明了,默认会自动转换为换行符
问题描述:然后使用Linux作为服务器时,会出现换行错误。
解决方案:根据各位高手的解决方案,最直接的办法就是(LZ的开发环境是windows),可以打开命令窗口全局修改git。命令如下:
git config --global core.autocrlf 错误的
git config --global core.safecrlf true
Windows:(正确)
MAC/Linux:(input)
核心.autocrlf
true // 表示自动替换 crlf. Windows下,如果结账时为\n,会自动改为\r\n,提交时又自动改回\n。
input // 自动将\r\n替换为\n
false // 表示不处理
核心.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