Git 换行符检查 CRLF 与 LF

Git 换行符检查 CRLF 与 LF

遇到的问题

在 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 格式。

Git 换行符检查 CRLF 与 LF

crlf-format.png

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

Git 换行符检查 CRLF 与 LF

crlf-format-phpstrom.png

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112438.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBoot热部署(IDEA 2109 )「建议收藏」

    SpringBoot热部署(IDEA 2109 )「建议收藏」SpringBoot热部署(IDEA 2109 )

    2022年4月23日
    65
  • 银行风控模型

    银行风控模型风控催生原因对于银行来说,现今互联网贷款和信用卡办理面临的主要难题是数据和风控。站在银行或金融机构角度,自然而然是想获得更多的信息和数据,但是在收集数据这方面又是比较无力的。加上当下的发展趋势,消费贷以及贷款审批速度都要求快。如何在快的的过程中对客户进行一个全面的审查,得出一个合理的结果呢?如果没有详细的数据对客户进行评估,这势必会提高放贷的风险。风控概述所谓风控,是指多银行贷款资金的…

    2022年6月13日
    42
  • Git切换分支命令

    Git切换分支命令GIT切换分支命令1.查看远程分支2.查看本地分支3.切换分支程序员在开发和管理项目的时候,往往会会切除多个分支来进行使用,现在就来谈谈如何切换分支1.查看远程分支1.gitbranch-a先到你的项目根目录下打开Git,在命令行输入上面指令就能查出远程所有分支了。2.查看本地分支2.gitbranch这一步可有可无,只是让自己知道项目现在处于哪个分支之下3.切换分支3.gitcheckout-b想要的分支名(如果本地有这分支的话,-b就可以省略

    2022年6月20日
    53
  • Java设计专题及高级导向「建议收藏」

    Java设计专题及高级导向「建议收藏」Java设计专题及高级导向

    2022年4月22日
    32
  • 隐性域名转发html代码,你知道显性URL转发/隐性URL转发记录添加方式吗

    隐性域名转发html代码,你知道显性URL转发/隐性URL转发记录添加方式吗显性URL转发/隐性URL转发其实URL转发里面的两种转发方式,根据跳转后的是否改变域名来判断显性还是隐形。当然根据不同的需要,可以选择不同的转发方式。今天小编为大家介绍的是隐/显性URL转发记录添加方式。显性URL转发/隐性URL转发URL是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指…

    2022年10月18日
    5
  • 狂神说SpringMVC05:整合SSM框架

    狂神说SpringMVC05:整合SSM框架狂神说SpringMVC系列连载课程,通俗易懂,基于Spring5版本(视频同步),欢迎各位狂粉转发关注学习。未经作者授权,禁止转载整合SSM框架在上一节中,我们了解了SpringMVC…

    2022年6月10日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号