搜索

首页  >  问答  >  正文

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

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

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


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

淡淡烟草味淡淡烟草味2795 天前851

全部回复(2)我来回复

  • 怪我咯

    怪我咯2017-05-02 09:34:11

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

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

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-02 09:34:11

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

    回复
    0
  • 取消回复