git如何避免”warning: LF will be replaced by CRLF“提示?

2023-12-22 23:58

本文主要是介绍git如何避免”warning: LF will be replaced by CRLF“提示?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:Andy Deng
链接:https://www.zhihu.com/question/50862500/answer/123197258
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

设置 core.autocrlf=true 后:
检出时,git 会把文本文件的换行符转化为 CRLF(只转化纯 LF 的文件)
提交时,把暂存区的内容(也就是我们对工作区做的改动)转化为 LF 然后放入版本库。

转化暂存区的内容时,如果发现里面存在 LF 换行符,LF 会被转化成 CRLF,并给出题主
提到的那条警告:"LF will be replaced by CRLF"

这句警告的下面其实还有一句很重要的话:
warning: LF will be replaced by CRLF in <file-name>.
The file will have its original line endings in your working directory.(翻译下就是:“在工作区里,这个文件会保持它原本的换行符。”)

简单来说,设置 core.autocrlf=true 后,我们工作区的文件都应该用 CRLF 来换行。如果
改动文件时引入了 LF,或者设置 core.autocrlf 之前,工作区已经有 LF 换行符。提交改
动时,git 会警告你哪些文件不是纯 CRLF 文件,但 git 不会擅自修改工作区的那些文件,
而是对暂存区(我们对工作区的改动)进行修改。也因此,当我们进行 git add 的操作时,
只要 git 发现改动的内容里有 LF 换行符,就还会出现这个警告。

设置 core.autocrlf=true, 只要保持工作区都是纯 CRLF 文件,编辑器用 CRLF 换行,
就不会出现警告了(题主提的问题 2)。

git 默认让版本库里用 LF 换行,只要保持这条规则,多人协作就不会出什么大问题。
git 的 Windows 客户端基本都会默认设置 core.autocrlf=true
Linux 最好不要设置 core.autocrlf,因为这个配置算是为 Windows 平台定制。

如果 Windows 上设置 core.autocrlf=false,仓库里也没有配置 .gitattributes,很容
易引入 CRLF 或者混合换行符(Mixed Line Endings,一个文件里既有 LF 又有
CRLF)到版本库,这样就可能产生各种奇怪的问题(题主提的问题 1)。

如果有换行符不匹配本地平台的情况,我还是建议你用 dos2unix 之类的工具转换下换行
符,因为很多配置文件是严格要求文件编码和换行符的,谨慎一点比较好。

如果还有疑问,建议看看下面的链接:
1. Dealing with line endings
2. Git - 配置 Git
3. git-config(1)

这篇关于git如何避免”warning: LF will be replaced by CRLF“提示?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525956

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到