Git中文件换行符都使用LF

有时候我们会在多个平台上编辑文件、代码,此时我们希望所有文件,包括你在 Windows 上编辑的文件(Windows 采用的是 CRLF),都使用 LF 换行符,那么可以修改 .gitattributes 文件来强制执行这个规则:

1
2
3
4
5
6
7
# 强制所有文件使用 LF 换行符
* text eol=lf

# 避免对二进制文件进行换行符转换
*.png binary
*.jpg binary
*.pdf binary

在保存提交 .gitattributes 后,可能因为之前在 Windows 上编辑的文件可能已经变成了 CRLF 换行符,这时需要需要将它们转换回 LF(这里可以使用 VSCode)。

接着可以执行以下命令,让 Git 重新处理工作目录中的文件并按照新的规则来转换:

1
2
git rm --cached -r .
git reset --hard

* text eol=lf:这条规则告诉 Git,将仓库中的所有文件都视为文本文件,并且强制它们使用 LF 作为行结束符。当你从仓库检出文件时,Git 会将其转换为 CRLF(在 Windows 上),但当你提交时,它会确保所有文件都以 LF 格式存储在仓库中。

git rm --cached -r .git reset --hard:这些命令会强制 Git 重新将你的工作目录与仓库同步,并在此过程中应用 .gitattributes 文件中设置的换行符规则,从而确保所有文件都符合 LF 规范。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计