gitwindows下换行符问题LF与CRLF转换 [操作系统入门]

编程

最近工作中,使用git clone代码后,启动项目,却突然报错,根据提示内容,发现是换行的问题引起的。

报错如下图所示:

 

为什么呢?

为什么会出现这种原因呢?发现团队中,大家分别使用了windows系统,Linux系统,MAC OS系统;在不同的操作系统中,换行符并不统一,Linux系统中使用0x0D0A(CRLF),而MAC OS系统起初使用0x0D(CR)  后来和Linux系统保持一致。  而git默认采用Linux的换行符。

git 为了解决不同平台换行符不一致的问题,在 windows 操作系统中默认在检出代码时将 LF 转换为 CRLF,而在提交的时候再转换为 LF,但是看似完美的解决方案在中文环境中却失效了。 

 

多操作系统平台协同开发时,遇到这种问题,应该怎么办呢?

解决方案

  • 使用编译器配置
  • git设置

 

方法一:编译器设置 

        file — setting — code style  — Line separator 选择Unix and macOS

        

 

方法二:

       使用方法一的时候,突然发现失效了,这个时候,我们就需要去配置git,先了解下git的相关参数:eol  autocrlf   safecrlf

  • eol: 设置工作目录中文件的换行符,有三个值 lf, crlf 和 native(默认,同操作系统)
  • autocrlf:

    • true 表示检出是转换CRLF, 提交时转换为 LF
    • input 表示检出是不转换,提交时转换为 LF
    • false 表示不做转换

  • safecrlf:

    • true 表示不允许提交时包含不同换行符
    • warn 则只在有不同换行符时警告
    • false 则允许提价时有不同换行符存在

AutoCRLF

#提交时转换为LF,检出时转换为CRLF

git config --global core.autocrlf true

#提交时转换为LF,检出时不转换

git config --global core.autocrlf input

#提交检出均不转换

git config --global core.autocrlf false

SafeCRLF

#拒绝提交包含混合换行符的文件

git config --global core.safecrlf true

#允许提交包含混合换行符的文件

git config --global core.safecrlf false

#提交包含混合换行符的文件时给出警告

git config --global core.safecrlf warn

  

 配置方法如下:

 

    

  <!--统一换行符为 lf-->

git config --global core.eol lf

<!--将自动转换关闭,避免转换失败不能不同进行提交-->

git config --global core.autocrlf false

<!--禁止混用 lf 和 crlf 两种换行符-->

git config --global core.safecrlf true

  

咦,怎么启动项目还不行呢?小伙伴们,注意哦!!!如果已经启动项目的话,记得重新pull代码,因为现有的代码格式已经转换了,需要重新配置下哦!

多操作系统平台协同开发时,git的注意事项:不要使用git的换行符自动转换功能,尽可能保证代码的换行符都是unix!

 

 

人最值得高兴的事:父母健在、知己两三、盗不走的爱人,其他都是假象,别太计较。

河南加油!中国加油!

 

 

 

git windows下换行符问题 LF与CRLF转换

以上是 gitwindows下换行符问题LF与CRLF转换 [操作系统入门] 的全部内容, 来源链接: utcz.com/z/519806.html

回到顶部