git提示“warning: LF will be replaced by CRLF”的解决办法
一、发现问题
windows平台下使用git add,git deploy 文件时经常出现“warning: LF will be replaced by CRLF” 的提示。
网上很多解决办法提到:
设置core.autocrlf=false,windows也用LF换行。
二、分析问题
格式化与多余的空白字符,特别是在跨平台情况下,有时候是一个令人发指的问题。由于编辑器的不同或者文件行尾的换行符在 Windows 下被替换了,一些细微的空格变化会不经意地混入提交,造成麻烦。虽然这是小问题,但它会极大地扰乱跨平台协作。
其实,这是因为在文本处理中,CR(CarriageReturn),LF(LineFeed),CR/LF是不同操作系统上使用的换行符,具体如下:
换行符‘\n’和回车符‘\r’
- 回车符就是回到一行的开头,用符号r表示,十进制ASCII代码是13,十六进制代码为0x0D,回车(return);
- 换行符就是另起一行,用n符号表示,ASCII代码是10,十六制为0x0A, 换行(newline)。
所以我们平时编写文件的回车符应该确切来说叫做回车换行符。
应用情况
- Dos和Windows平台: 使用回车(CR)和换行(LF)两个字符来结束一行,回车+换行(CR+LF),即“\r\n”;
- Mac 和 Linux平台:只使用换行(LF)一个字符来结束一行,即“\n”;
- 最早Mac每行结尾是回车CR 即’\r’,后mac os x 也投奔了 unix。
许多 Windows 上的编辑器会悄悄把行尾的换行(LF)字符转换成回车(CR)和换行(LF),或在用户按下 Enter 键时,插入回车(CR)和换行(LF)两个字符。
影响:
- 一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
- 而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
- Linux保存的文件在windows上用记事本看的话会出现黑点。
这些问题都可以通过一定方式进行转换统一,例如,在linux下,命令unix2dos 是把linux文件格式转换成windows文件格式,命令dos2unix 是把windows格式转换成linux文件格式。
三、解决问题:
情况一:
Git 可以在你提交时自动地把回车(CR)和换行(LF)转换成换行(LF),而在检出代码时把换行(LF)转换成回车(CR)和换行(LF)。 你可以用 git config --global core.autocrlf true 来打开此项功能。 如果是在 Windows 系统上,把它设置成 true,这样在检出代码时,换行会被转换成回车和换行:
#提交时转换为LF,检出时转换为CRLF
$ git config --global core.autocrlf true
情况二:
如果使用以换行(LF)作为行结束符的 Linux 或 Mac,你不需要 Git 在检出文件时进行自动的转换。然而当一个以回车(CR)和换行(LF)作为行结束符的文件不小心被引入时,你肯定想让 Git 修正。 所以,你可以把 core.autocrlf 设置成 input 来告诉 Git 在提交时把回车和换行转换成换行,检出时不转换:(这样在 Windows 上的检出文件中会保留回车和换行,而在 Mac 和 Linux 上,以及版本库中会保留换行。)
#提交时转换为LF,检出时不转换
$ git config --global core.autocrlf input
情况三:
如果你是 Windows 程序员,且正在开发仅运行在 Windows 上的项目,可以设置 false 取消此功能,把回车保留在版本库中:
#提交检出均不转换
$ git config --global core.autocrlf false
你也可以在文件提交时进行safecrlf检查
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true #允许提交包含混合换行符的文件
git config --global core.safecrlf false #提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
通俗解释
- git 的 Windows 客户端基本都会默认设置 core.autocrlf=true,设置core.autocrlf=true, 只要保持工作区都是纯 CRLF 文件,编辑器用 CRLF 换行,就不会出现警告了;
- Linux 最好不要设置 core.autocrlf,因为这个配置算是为 Windows 平台定制;
- Windows 上设置 core.autocrlf=false,仓库里也没有配置 .gitattributes,很容易引入 CRLF 或者混合换行符(Mixed Line Endings,一个文件里既有 LF 又有CRLF)到版本库,这样就可能产生各种奇怪的问题。
git提示“warning: LF will be replaced by CRLF”的解决办法相关推荐
- 【Tools】git提示“warning: LF will be replaced by CRLF”的解决办法
原文链接:https://blog.csdn.net/u012757419/article/details/105614028 一.发现问题 windows平台下使用git add,git deplo ...
- git add * 提示warning: LF will be replaced by CRLF in 解决办法
在使用git的时候,每次执行 $ git add * 都会提示这样一个警告消息: 虽然说没有什么影响吧. 不过就是觉得太碍眼了, 按照这样设置就没有问题了: git config core.autoc ...
- git warning: LF will be replaced by CRLF in 解决办法 1
git warning: LF will be replaced by CRLF in 解决办法 按照这样设置就没有问题了: git config core.autocrlf false 这样设置gi ...
- git warning: LF will be replaced by CRLF in 解决办法
windows中的换行符为 CRLF, 而在Linux下的换行符为LF,所以在执行add . 时会出现以下提示 warning: LF will be replaced by CRLF in pom. ...
- Git 提示 “warning: LF will be replaced by CRLF“的思考
在windows平台进行 git add 时, 控制台有时会打印警告 warning: in the working copy of 'XXX.sh', LF will be replaced b ...
- warning: LF will be replaced by CRLF in 解决办法
warning: LF will be replaced by CRLF in 原因是存在符号转义问题 windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时 ...
- git 警告: LF will be replaced by CRLF in 解决办法
在使用git的时候,每次执行 #git add "目录" git add . 都会提示这样一个警告消息: warning: LF will be replaced by CRLF ...
- 【Git】warning: LF will be replaced by CRLF in .gitignore解决方案
我是一个甜甜的大橙子
- [GIT] warning: LF will be replaced by CRLF 问题解决方法 - 转
传送门: http://michael-roshen.iteye.com/blog/1328142 1. 环境: win7 + git bash 2. 起因 运行: $ git init $ git ...
最新文章
- vs2005不能找到ASP.NET网站之郁闷
- 3.Struts2的输入验证
- 修改节点大小_重磅前瞻!K8S 1.18即将发布:OIDC发现、Windows节点支持,还有哪些新特性值得期待?...
- 我是一个线程 [转]
- 全文目录和全文索引的关系
- xcorr函数_相关函数xcorr的用法及实例
- 【九度OJ1522】|【剑指offer21】包含min函数的栈
- matlab 模拟电磁学时域有限差分法,MATLAB模拟的电磁学时域有限差分法
- 锐浪报表数据源access_学习锐浪报表之MySQL连接字符串的实际操作步骤汇总
- i3 10105f和i5 10400f差多少 I3 10105F和I5 10400F区别
- “2020 博客之星”年度总评选 TOP 200 名单已出,速来认领!
- 怎样清理计算机c盘东西,怎样清理电脑c盘无用的东西(电脑c盘垃圾清理技巧)...
- 基于stm32f103c8t6的Flash地址空间的数据读取
- 【优先队列】Toda 2
- 【UnblockNeteaseMusic】代理网易云后隐藏NODE代理窗口方法
- dirname 使用总结
- 逻辑代数:逻辑运算与定理,代数化简
- WEB前端整套教程html+divcss+javascript+jquery+html5-孙琪峥-专题视频课程
- 针对于病毒 RavMon.exe 的 病毒专杀
- 《java虚拟机规范SE7》整理——第四章:Class文件格式