git 自动换行在WINDOWS和LINUX下的区别

 阮琳芷信玲俊岳 发布于 2022-10-25 06:35

最近在windows下面最了个项目用git来管理,git add .的时候一直报错 LF will be replaced by CRLF,网上的大部分答案都是git config --global core.autocrlf false,禁用自动换行,这样做确实可以让我在这个项目中add了

但是问题是,另一项目(从mac下拉的代码),做管理的时候必须要把它设置成true才可以


我现在脑子有点瓦特,能不能哪位大神仔细讲一下,这个过程到底是发生了什么?

2 个回答
  • 由于git最早是Linux专属的,所以换行一直是Linux的LF,如果一个项目组有Linux和Windows用户,那么换行符应该统一,当然一般文件应该统一为LF,autocrlf开启后Windows用户本地文件仍然是CR LF,提交时自动转换为LF。

    ps:由于国内使用Windows的多,所以很可能把Windows专属的文件也改为LF换行,比如bat批处理脚本,这样从github下载下来的文件就丢失了CR换行符,导致无法运行。

    这个设置项是多余的,一般建议关掉,由人为来保证换行符统一。而一般现在的IDE都能正常显示多种换行符风格,Windows下也能保证显示LF正常。只要不用Windows记事本编辑代码就不会出现CR LF风格的换行符。

    2022-10-26 14:23 回答
  • 额,你是不是用的百度。。。所以你根本不知道问题的原因,这和自动换行没关系

    windows 换行符:CRLF Linux/UNIX 换行符:LF
    所以你windows 到 UNIX 当然需要转换回车符。

    git config --global core.autocrlf false

    关闭换行转换功能

    git config --global core.autocrlf true

    作用如下:
    Git can handle this by auto-converting CRLF line endings into LF when you add a file to the index
    来自官方文档

    2022-10-26 14:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有