今天把项目做完之后,然后用Git准备提交代码的时候,遇到warning: LF will be replaced by CRLF警告。
当时在网上查了资料,发现很多的解决办法都是:修改git全局配置,禁止git自动将LF转化成CRLF。命令是:git config --global core.autocrlf false.

LF和CRLF的真相是什么

1.LF和CRLF都是换行符,在各操作系统下,换行符是不一样的,Linux/UNIX下是LF,而Windows下是CRLF,早期的MAC OS是CR,后来的OS X在更换内核后和UNIX一样也是LF.
这种不统一确实对跨平台的文件交换带来了麻烦。虽然靠谱的文本编辑器和 IDE 都支持这几种换行符,但文件在保存时总要有一个固定的标准啊,比如跨平台协作的项目源码,到底保存为哪种风格的换行符呢?

2.Git 由大名鼎鼎的 Linus 开发,最初只可运行于 *nix 系统,因此推荐只将 UNIX 风格的换行符保存入库。但它也考虑到了跨平台协作的场景,并且提供了一个“换行符自动转换”功能。

  • 安装好 GitHub 的 Windows 客户端之后,这个功能默认处于“自动模式”。
  • 当你在签出文件时,Git 试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。
    所以Git在拉取代码的时候,git会自动将代码之中与你当前系统不同的换行方式自动转换成当前系统的换行方式。
    这样一来在提交代码的时候,git会认为你未修改内容的文件也认为是修改过的,然后提示你warning: LF will be replaced by CRLF这样的信息。

3.上面的解决办法固然解决了很多人的问题,但是在某些情况下就不适用。这次项目中,在用fiskit框架npm deploy打包前端文件到后端路径的时候,打包出来的文件用git进行commit的时候,提示LF和CRLF,文件的换行符被修改过,这时候也尝试了上面的方法,也没有用,最后在知乎上看到一篇文章https://www.zhihu.com/question/50862500,

有效的解决方法

如果设置core.autocrlf = false,那么很可能会出现CRLF和LF混合的情况,这样会导致一些问题,例如git diff 失去功能,会发现很多行代码并没有修改,然而被认为是修改过了。
首先core.autocrlf = true在windows上才是正确的选择,那么如何避免warning呢?还要有以下几个步骤:

  • 添加.gitattributes
  • 设置core.safecrlf = true
  • 使用dos2unix、notepad++等工具来将LF转换成CRLF

git提交时”warning: LF will be replaced by CRLF“提示的更多相关文章

  1. windows10下git报错warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory.

    window10下使用git时 报错如下: $ git add readme.txtwarning: LF will be replaced by CRLF in readme.txt.The fil ...

  2. git add提交时关于 LF will be replaced by CRLF in 问题出现的原因以及解决方式

    最近在新创建的github项目中add新框架代码时,出现了LF will be replaced by CRLF in的问题,以下为问题截图 查阅资料才知道,LF和FRLF是两种不同的换行格式,这个警 ...

  3. 问题:git add 遇到 warning: LF will be replaced by CRLF in 警告(已解决)

    问题描述: git add file_name 提交文件时候提示 自动转换 CRLF 标识 如下图: 解决方法: 执行下面代码在命令行中执行: git config --global core.aut ...

  4. windows(hexo)使用git时出现:warning: LF will be replaced by CRLF

    hexo出现warning: LF will be replaced by CRLF git config --global core.autocrlf false //禁用自动转换

  5. git出现warning: LF will be replaced by CRLF的解决方法

    今天ytkah用git上传文件的时候出现了warning: LF will be replaced by CRLF的错误,具体信息如下,这是因为跨平台开发下产生的.由于编辑器的不同或者Windows程 ...

  6. 关于git提示“warning: LF will be replaced by CRLF”终极解答

    一.发现问题 windows平台下使用git add,git deploy 文件时经常出现“warning: LF will be replaced by CRLF” 的提示. 网上很多解决办法提到: ...

  7. [git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF[ git 处理和修改行结束符(CRLF和LF)]

    我自己的设置是: [core] autocrlf = false[core] safecrlf = true 取消自动转换CRLF(上图中选的是commit as is),但是有提交前混用检查 本人用 ...

  8. Git提示“warning: LF will be replaced by CRLF”

    感谢原文作者:萌新李同学(李俊德-大连理工大学) 原文链接:https://blog.csdn.net/wq6ylg08/article/details/88761581 问题描述 windows平台 ...

  9. [GIT] warning: LF will be replaced by CRLF问题解决方法

    原文链接[http://michael-roshen.iteye.com/blog/1328142] 开发环境: 操作系统: windows xp ruby 1.9.2 rails 3.1.3 git ...

随机推荐

  1. python3学习笔记.1.初体验

    最近工作烦得很 就想找点儿别的事情来做,于是想到了学学python. 因为是vs2017,所以就在里面安装了. 第一个程序肯定是Hello World了. 新建一个python应用程序 代码只有一行 ...

  2. IIS7.5 配置应用程序初始化功能

    IIS进程回收后,第一次访问会超级慢,这对于用户是不能接受的,怎么解决这个问题? 我们不能设置IIS不回收进程,因为这样可能会导致IIS内存泄漏.有效的方法时,尽量在业务空闲时间回收进程,回收后立刻预 ...

  3. TP中搜索条件

  4. 一个爬取https和http通用的工具类(JDK自带的URL的用法)

    今天在java爬取天猫的时候因为ssl报错,所以从网上找了一个可以爬取https和http通用的工具类.但是有的时候此工具类爬到的数据不全,此处不得不说python爬虫很厉害. package cn. ...

  5. 多线程中的超时, 如Socket超时

    ; ,,, ->$port { print "-->$port\r"; #say "\r"; await Promise.anyof( Promis ...

  6. xargs -i 和-I 的区别【转】

    xargs与find经常结合来进行文件操作,平时删日志的时候只是习惯的去删除,比如  # find . -type f -name "*.log" | xargs rm -rf * ...

  7. Python 生成随机数

    import random x = int(input('Enter a number for x: '))  --随机数最小值y = int(input('Enter a number for y: ...

  8. csu 最优对称路径(bfs+记忆化搜索)

    1106: 最优对称路径 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 371  Solved: 77[Submit][Status][Web Boar ...

  9. WP SMTP插件为啥我一直设置的不对?

    我也是摸索好久才搞定的,如果你是万网空间先去修改一下参数在万网后台设置PHP.ini参数设置,因为万网阿里云免费虚拟主机禁用了WordPress默认使用的PHP mail()发信函数,而 stream ...

  10. lr如何屏蔽全局变量的影响

    首先要熟悉C语言的全局变量和局部变量的含义: C语言中的变量详解 先说说变量的作用域,比如,在函数中,形参变量只是在被调用期间才分配内存单元,调用结束立即释放.这就说明形参变量只有在函授内才是有效的, ...