Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案

今天用Git bash遇到的问题,看了几个回答之后发现一个比较有价值的,给大家分享一下,其他很多的回答都有很或多或少存在一些弊端。

原回答地址在stackoverflow上,附上链接--http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf

这里我把主要的东西提炼一下翻译成中文供大家参考。

首先问题出在不同操作系统所使用的换行符是不一样的,下面罗列一下三大主流操作系统的换行符:

Uinx/Linux采用换行符LF表示下一行(LF:LineFeed,中文意思是换行);

Dos和Windows采用回车+换行CRLF表示下一行(CRLF:CarriageReturn LineFeed,中文意思是回车换行);

Mac OS采用回车CR表示下一行(CR:CarriageReturn,中文意思是回车)。

在Git中,可以通过以下命令来显示当前你的Git中采取哪种对待换行符的方式

$ git config core.autocrlf

此命令会有三个输出,“true”,“false”或者“input”

为true时,Git会将你add的所有文件视为文本问价你,将结尾的CRLF转换为LF,而checkout时会再将文件的LF格式转为CRLF格式。

为false时,line endings不做任何改变,文本文件保持其原来的样子。

为input时,add时Git会把CRLF转换为LF,而check时仍旧为LF,所以Windows操作系统不建议设置此值。

解决办法:

将core.autocrlf设为false即可解决这个问题,不过如果你和你的伙伴只工作于Windows平台或者Linux平台,那么没问题,不过如果是存在跨平台的现象的话,还是需要考虑一下。

但当 core autocrlf为true时,还有一个需要慎重的地方,当你上传一个二进制文件,Git可能会将二进制文件误以为是文本文件,从而也会修改你的二进制文件,从而产生隐患。

PS:

附上修改autocrlf的命令,以改为true为例:

$ git config --global core.autocrlf true   #true的位置放你想使autocrlf成为的结果,true,false或者input

转载自:https://blog.csdn.net/starry_night9280/article/details/53207928

原文地址:https://www.cnblogs.com/EveningWind/p/10917319.html

时间: 2024-10-05 05:05:45

Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案的相关文章

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 file will have its original line endings in your working directory. 意思大概是:LF(换行,Line Feed)将会被CRLF(回车换行,CarriageReturn)替代. 该文件将在工作目录中具有其原始行尾. 报这个警告时是由于文件夹

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

[GIT] warning: LF will be replaced by CRLF问题解决方法 博客分类: Rails git crlf rails 开发环境: 操作系统: windows xp ruby 1.9.2 rails 3.1.3 git version 1.7.8.msysgit.0 问题描述: 启动GIT: 新建了一个rails工程 Ruby代码   $ rails new blog 当切换到blog目录下执行 Ruby代码   $ git init $ git add . 系统

git warning: LF will be replaced by CRLF in 解决办法

在使用git的时候,每次执行 #git add "目录" git add . 都会提示这样一个警告消息: warning: LF will be replaced by CRLF in XXXXXXXXXXXXXX. 虽然说没有什么影响吧. 不过就是觉得太碍眼了, 按照这样设置就没有问题了: git config core.autocrlf false 这样设置git的配置后在执行add操作就没有问题了.

[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),但是有提交前混用检查 本人用的是WINDOWS下的PHPSTORM开发的PHP 遇到这两个错误,是因为Git的换行符检查功能. core.safecrlf Git提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符.这个功能的选项如下: false - 不做任何检查 warn 

[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF

遇到这两个错误, 基本上都是叫你将 autocrlf 设置为 false. 但是我觉得这样很不妥. 如果你的源文件中是换行符是LF,而autocrlf=true, 此时git add就会遇到 fatal: LF would be replaced by CRLF 的错误.有两个解决办法: 1. 将你的源文件中的LF转为CRLF即可[推荐] 2. 将autocrlf 设置为 false 如果你的源文件中是换行符是CRLF,而autocrlf=input,  此时git add也会遇到 fatal:

[git] warning: LF will be replaced by CRLF | fata

遇到这两个错误,是因为Git的换行符检查功能. core.safecrlf Git提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符.这个功能的选项如下: false - 不做任何检查 warn - 在提交时检查并警告 true - 在提交时检查,如果发现混用则拒绝提交 建议使用最严格的 true 选项. core.autocrlf 假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这

解决:git warning: LF will be replaced by CRLF in xxxx

一. git add -A报错 在利用git add -A添加文件时,意外的发现报错了 报错信息中: LF:Line Feed 换行 CRLF:Carriage Return Line Feed  回车换行键 大意是: 警告:today.txt(我要添加的文件名)中LF被CRLF替换 在工作区里,这个文件将会保持它原来的换行符 二. 什么原因 1. 不同操作系统的行尾结束符(换行符)是不同的 windows下:CRLF("\r\n",使用回车换行两个字符) unix下:LF("

[git] -- warning: LF will be replaced by CRLF in app/app.iml. The file will have its original line endings in your working directory.

遇到这个错误,因为是git的换行符检查功能.之前代码是在MAC下,后来放在windows系统下,git add .的时候报这个错误. core.safecrlf git 提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符. false --- 不做任何检查: warn --- 在提交的时候检查并报告: true --- 在提交时检查,如果发现混用则拒绝提交: 建议使用最严格的true选项. core.autocrlf 如果用两台不同系统的电脑写

git warning: LF will be replaced by CRLF in...

如果你有git项目,在提交代码的过程中可能会碰到上面的警告,特别是的项目中包含序列化对象的时候,你可能要小心!! 警告的含义是说换行符的,不同的操作系统的换行符是不一致的,如果你不清楚,真得看看这个 git提供了一个解决方案来自动转化不同操作系统的换行符,以方便分布式协作 什么方案呢?看这里看这里