git 自动换行在WINDOWS和LINUX下的区别
淡淡烟草味
淡淡烟草味 2017-05-02 09:32:11
[Git讨论组]

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

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


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

淡淡烟草味
淡淡烟草味

全部回复(2)
怪我咯

额,你是不是用的百度。。。所以你根本不知道问题的原因,这和自动换行没关系

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
来自官方文档

phpcn_u1582

由于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风格的换行符。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号