Git: ‘LF will be replaced by CRLF the next time Git touches it‘ 问题解决与思考

一、问题

windows平台进行 git add 时,控制台打印警告warning: in the working copy of ‘XXX.py’, LF will be replaced by CRLF the next time Git touches it
 

二、问题分析

Dos/Windows平台默认换行符:回车(CR)+换行(LF),即’\r\n’
Mac/Linux平台默认换行符:换行(LF),即’\n’
企业服务器一般都是Linux系统进行管理,所以会有替换换行符的需求
 

三、解决方法

设置方法一:

#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

*适用于Windows系统,且一般为Windows默认设置,会在提交时对换行符进行CRLF - LF的转换,检出时又会进行LF - CRLF的转换。
 

设置方法二:

#提交时转换为LF,检出时不转换
git config --global core.autocrlf input

*适用于Linux系统,所有换行符都会进行CRLF - LF转换,但操作时不会转换回CRLF。
 

设置方法三:

#提交检出均不转换
git config --global core.autocrlf false

*适用于Windows系统,且只在Windows上开发的情况。在提交、检出时不会对CRLF/LF换行符进行转换
 

文件提交时进行safecrlf检查:

#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

#允许提交包含混合换行符的文件
git config --global core.safecrlf false

#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

 

四、问题思考

  1. 跨平台文件都有兼容性的问题,为什么只有core.autocrlf参数设置true检出时,会有LF-CRLF的转换?
    有看到跨平台文件的问题:
    · Linux文件在Windows下会显示成一行。
    · Windows文件在Linux下结尾可能多出^M符号
     
    那么就有以下可能性:
    ① Windows因为可视化界面较好,操作简易,且文件格式对日常操作没有较大影响,所以不做该功能。
    ② Git的pull等功能将文件拉取到本地时,都会基于检出配置进行操作,所以只要把core.autocrlf设置成true就好了。
  • 56
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Windows 平台中,当使用 Git 的 "git add" 命令时,你可能会看到类似于 "warning: in the working copy of 'XXX.py', LF will be replaced by CRLF the next time Git touches it" 的警告信息。这是因为在 Windows 上,换行符的表示方式为 CRLF(回车换行),而在 Git 中,通常使用 LF(仅换行)来表示换行符。因此,Git 会在你执行 "git add" 操作时将文件中的 LF 换行符替换为 CRLF。这是为了确保在 Windows 平台上的文件与其他平台上的文件保持一致性。 为了解决这个警告,你可以使用以下命令来配置 Git 对换行符的处理方式: - 如果你是在 Windows 平台上进行开发,默认情况下,Git 会将 LF 换行符转换为 CRLF。你可以执行以下命令来设置这个选项:git config --global core.autocrlf true。 - 如果你是在 Linux 平台上进行开发,你可以执行以下命令来设置这个选项:git config --global core.autocrlf input。 - 如果你只在 Windows 平台上进行开发,并且不希望看到这个警告信息,你可以执行以下命令来设置这个选项:git config --global core.autocrlf false。 除了配置 "core.autocrlf" 选项之外,还可以使用 "core.safecrlf" 选项来控制提交文件时对换行符的检查: - 如果你希望拒绝提交包含混合换行符的文件,你可以执行以下命令:git config --global core.safecrlf true。 - 如果你允许提交包含混合换行符的文件,你可以执行以下命令:git config --global core.safecrlf false。 - 如果你希望在提交包含混合换行符的文件时给出警告,你可以执行以下命令:git config --global core.safecrlf warn。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值