git 自动换行在WINDOWS和LINUX下的区别
淡淡烟草味
淡淡烟草味 2017-05-02 09:32:11
0
2
794

最近在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风格的换行符。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!