git commit时报错,LF will be replaced by CRLF the next time Git touches it

avatar
作者
筋斗云
阅读量:1

problem

本地执行git commit时,会出现很多文件出现diff信息,实际文件并没有修改,通过 git diff,
出现提示是 warning: in the working copy of ‘vite.config.ts’, LF will be replaced by CRLF the next time Git touches it。是什么原因导致的?怎么解决?

reason

出现这种情况的原因是你的 Git 配置或操作系统的行尾字符设置不同。
通常在 Unix/Linux 和 macOS 上,行尾字符是 LF (Line Feed, \n),
而在 Windows 上,行尾字符是 CRLF (Carriage Return and Line Feed, \r\n)。
简单来说,windows是\r\n,mac是\n导致

solution

Visual Studio Code 如何查看换行符类型?
在 VS Code 窗口的右下角,有一个显示当前文件换行符类型的区域。它通常会显示为 CRLF 或 LF。
CRLF 表示文件使用的是 \r\n 作为换行符(Windows 风格)。
LF 表示文件使用的是 \n 作为换行符(Unix/Linux 和 macOS 风格)

解决办法:

  1. windows环境
    git config --global core.autocrlf true
    在检出文件时将行尾字符转换为 CRLF,而在提交时将其转换回 LF
    实际测试:没有用

  2. 配置prettier的配置文件,忽略行尾字符
    .prettierrc 新增 “endOfLine”: “auto”

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!