您的位置:首页 > 博客中心 > 电脑问题 >

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

时间:2022-09-07 11:14

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

报错如下图所示:

技术图片

 

为什么呢?

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

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

 

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

解决方案

  • 使用编译器配置
  •  

    方法二:

           使用方法一的时候,突然发现失效了,这个时候,我们就需要去配置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!

     

     

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

    河南加油!中国加油!

     

     

     

本类排行

今日推荐

热门手游