解决警告“..LF will be replaced by CRLF the next time Git touches it“

在windows下执行git add . 时出现很多类似如下的警告

复制代码
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_pka.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_pwr.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_rcc.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_rng.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_rtc.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_sdmmc.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_spi.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_swpmi.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_tim.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_usart.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_usb.c', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_utils.c', LF will be replaced by CRLF the next time Git touches it

警告含义是当前工作区里的文件都是"LF"结尾, 但现在Git配置的是core.autocrlf = true

所以下次GIt检出或者重写这些文件时, 会自动把LF转换成CRLF

然后git出现大量的提醒, 就是将来会执行这些转换.

为了不影响代码, 进行如下配置

复制代码
git config --global core.autocrlf false
git config --global core.safecrlf warn

然后统一项目使用 LF 行尾

在项目根目录执行

复制代码
git rm --cached -r . # 清空index
git reset --hard  # 重新checkout所有文件

然后重新执行

复制代码
git status
git add .

warning会全部消失

另外一种方式就是在项目根目录建立.gitattributes文件, 在其中添加

复制代码
* text=auto eol=lf
相关推荐
A_Lonely_Cat14 小时前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
和你看星星3 天前
Git rerere:让重复冲突只解决一次
git
嘻嘻仙人6 天前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
Patrick_Wilson6 天前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
沉浸学习的匿名网友6 天前
什么是 .gitignore?为什么每个 Git 项目几乎都离不开它?
前端·git
深海鱼在掘金7 天前
Git 完全指南 —— 第3章:理解工作区、暂存区、版本库三个核心
git
江华森7 天前
Git 基础筑基:从原理到团队协作的全栈实战
git
JakeJiang8 天前
Git 必备命令指南:从日常高频到项目开发实战
git
叫我少年8 天前
Windows 中安装 git
git
深海鱼在掘金14 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git