遇到的问题

在 git 提交或是签出时,提示如下问题:
[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF
上面的问题主要反映在 Mac\Linux 系统结束符 LF 与 Window 结束符 CRLF 跨平台协作的问题。

Git 换行符检查与转换

Window 使用回车和换行两个字符来结束一行,Mac\Linux 只使用换行符结束一行。
在使用 Git 管理项目代码版本时,Git 提供了一个换行符检查功能(core.safecrlf),用于提交文件时检查文件是否混用了两种风格的结束符。

core.safecrlf

core.safecrlf 用户检查是否混用换行符。
命令的格式如下:
git config --global core.safecrlf [false|warn|true]
参数说明:

false:不做任何检查
warn:在提交时检查并警告
true:在提交时检查,如果发现混用则拒绝提交

建议使用最严格的 true 选项。初步开始不熟悉的情况下,可以使用 warn 作为参数。

core.autocrlf

core.autocrlf 用于 CRLF 与 LF 之间的转换。
命令的格式如下:
git config --global core.autocrlf [true|input|false]
参数说明:

false:不进行转换
input:在提交时,把 CRLF 转换成 LF;签出时不转换
true:提交时,把 CRLF 转换成 LF;签出时把 LF 转换成 CRLF

git config --global core.autocrlf true
Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF。

git config --global core.autocrlf input
Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换。

git config --global core.autocrlf false
如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中。

解决方法

当碰到最初提示的两个问题时,上述设置也许只是解决问题前的知识辅助,问题的病症还是在混用了两种风格的结束符,或是在两个平台间协作,结束符没有做同一。
要从根本上解决为还是要统一结束符。平时在用 git status 查看文件状态时,发现整个文件没修改,但是 git diff 提示整个文件整体改动了。这个问题就是由两种风格的结束符导致。
这时最好都同一为 LF 风格。
如果安装了 Notepad++,采用如下步骤:
1)打开提示错误的文件;
2)点击 Edit->EOL Conversion 选择需要转换到的格式,如 UNIX 格式。

crlf-format.png

如果文件设计太多,那么如果你的 IDE 支持整体格式变更那就非常方便。如我采用的是 phpstrom ,只需选中文件根目录,然后点击 Line Separators -> LF - Unix and OS X(\n) 即可整个文件转换结束符。

crlf-format-phpstrom.png

链接:https://www.jianshu.com/p/bc001c107dfe

Git 换行符检查 CRLF 与 LF的更多相关文章

  1. git 换行符LF与CRLF转换问题

    git 换行符LF与CRLF转换问题 一.背景 在各操作系统下,文本文件所使用的换行符是不一样的.UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来 ...

  2. git换行符之autoCRLF配置的意义

    关于git换行符处理的问题,我查了一查,自己的设置中,global-config中设了autocrlf=false,systemwide中将autocrlf设成了true. 关于配置的作用域,syst ...

  3. git 换行符问题

    git 换行符问题 在windows环境中 对于autocrlf = false 不会激发 关于换行符的处理 对于autocrlf = true 会在提交是将LF替换成CRLF 切出时时CRLF 对于 ...

  4. Git换行符是如何精确控制的

    Git换行符是如何精确控制的 Checkout Windows-style, commit Unix-style Git will convert LF to CRLF when checking o ...

  5. 记一次错误排查,主要问题是跨平台文件中换行符(CRLF, LF)和垃圾字符( Caret Notation)

    笔者测试SPEC14的workload的时候,需要自定义workload,又需要在Windows和Linux平台上都要测试,所以就遇到了这么个问题:测试工具报错,但是报出来的错误信息又跟错误对不上. ...

  6. 解决不同操作系统下git换行符一致性问题

    一.不同操系统下的换行符CR回车 LF换行Windows/Dos CRLF \r\nLinux/Unix LF \nMacOS CR \r二.解决方法 打卡git bash,设置core.autocr ...

  7. git换行符问题

    from: http://www.cnblogs.com/flying_bat/archive/2013/09/16/3324769.html 一.AutoCRLF#提交时转换为LF,检出时转换为CR ...

  8. git换行符自动转换导致整个文件被修改的解决方案

    不少开发者可能遇到过这个问题:从git上拉取服务端代码,然后只修改了一处地方,准备提交时,用diff软件查看,却发现整个文件都被修改了.这是git自动转换换行符导致的问题. 原因 不同操作系统使用的换 ...

  9. vscode wsl git 换行符问题autocrlf

    wsl中使用code,由于windows换行符问题git会显示大量文件修改,此时需要在wsl中设置autocrlf设置 git config --global core.autocrlf input ...

随机推荐

  1. 解决 docker ulimit open file 过少的问题

    解决方法: ExecStart=/usr/bin/dockerd -- -- -- -- --insecure-registry= --dns --dns-opt timeout: --dns-opt ...

  2. Spring任务调度器之Task的使用(转)

    文章转自 http://blog.csdn.net/l454822901/article/details/51829307 最近发现真的凹凸了,spring升级到3后原来已经自带任务调度器了,之前还一 ...

  3. matlab sign函数用法及实例

    在MATLAB科学计算过程当中,我们经常需要对我们的计算公式或者计算结果检验其符号,,sign函数就给我们提供了这种方便,下面就通过实例介绍一下matlab sign函数 的用法,希望能够给您带来帮助 ...

  4. DIYer最担心的事来了!CPU降价彻底无望

    12月27日,IDC发布2019年中国PC市场十大预测.IDC指出,2018年全年中国PC市场预计最终销售为5200万台左右,下滑了3.4%.2019年中国PC市场会处于一种习惯性艰难期,但是市场也不 ...

  5. Python将数据渲染到docx文档指定位置

    超简单Python将指定数据插入到docx模板渲染并生成 最近有一个需求,制作劳动合同表,要从excel表格中将每个人的数据导入到docx劳动合同中,重复量很大,因此可以使用python高效解决.为了 ...

  6. exBSGS·BSGS-Senior/扩展的BSGS

    \(\rm{0x01\quad Preface}\) \(emmm\)严格来讲,不应该被算到一个模板里面.因为在我看来模板是人构造出来的,但是这个算法应该是一个解决问题的\(process\)-更像是 ...

  7. 什么是Mixin模式:带实现的协议

    Mixin(织入)模式并不是GOF的<设计模式>归纳中的一种,但是在各种语言以及框架都会发现该模式(或者思想)的一些应用.简单来说,Mixin是带有全部实现或者部分实现的接口,其主要作用是 ...

  8. jquery ajax超时设置(转载)

    var ajaxTimeoutTest = $.ajax({ url:'', //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : 'get', //请求方式,g ...

  9. Luogu4199 万径人踪灭 FFT、Manacher

    传送门 先不考虑”不是连续的一段“这一个约束条件.可以知道:第$i$位与第$j$位相同,可以对第$\frac{i+j}{2}$位置上产生$1$的贡献(如果$i+j$为奇数表明它会对一条缝产生$1$的贡 ...

  10. Git .gitignore文件的使用

    本文转载自 http://blog.csdn.net/xmyzlz/article/details/8592302 在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .giti ...