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

开源 0

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”

也许您对下面的内容还感兴趣: