遇到的问题

在 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. 洛谷 P2678 跳石头

    题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...

  2. python3 day02 大纲

    一. 格式化输出 %s 字符串的占位 %d 数字的占位 digit %f 浮点数 字符串 % (数据) 模板字符串(3.5) # username = "admin"# passw ...

  3. nargin与varargin的用法

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用它来设定一些默认值.如下例所示: 函数文件 examp.m function fout=examp(a,b, ...

  4. mongodb数据库中插入数据

    mongodb数据库中插入数据 一:connection 访问集合: 在mongodb数据库中,数据是存储在许多数据集合中,可以使用数据库对象的collection方法访问一个集合.该方法使用如下: ...

  5. Linux命令——find/grep

    这两个命令写起来会很多,这里只简单的写一些东西,加深自己的印象. 一.find find命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作. 1)命令格式 find [参数] ...

  6. Android 动态的给Button、TextView、ImageView等控件设置了background后,再设置padding属性时该属性不起作用

    也许大家遇到这样一个问题,有时我们根据业务需要在一个ViewGroup中动态的(程序运行过程中)添加View.例如添加Button,就需要给Button添加background.padding.mar ...

  7. 你想要的Python面试都在这里了【315+道题】

    写在前面 近日恰逢学生临近毕业,课程后期大家"期待+苦逼"的时刻莫过于每天早上内容回顾和面试题问答部分[临近毕业每天课前用40-60分钟对之前内容回顾.提问和补充,专挑班里不爱说话 ...

  8. 01-Mirrorgate简介

    1.项目信息 MirrorGate是一款WallBoard应用程序,旨在为团队提供与软件开发相关的所有不同领域的快速反馈.       项目地址:https://github.com/BBVA/mir ...

  9. 获取2个集合List<T>的共同元素

    获取2个集合List<T>的共同元素,循环2个集合,然后比对. class Bj { public void GetIntersect() { , , , , , , }; , , , , ...

  10. Luogu P2257 YY的GCD

    莫比乌斯反演第一题.莫比乌斯反演入门 数论题不多BB,直接推导吧. 首先,发现题目所求\(ans=\sum_{i=1}^n\sum_{j=1}^m [\gcd(i,j)=prime]\) 考虑反演,我 ...