Git 拉动 Windows(git smc 客户端)不遵守 .git 属性的 eol=lf

Git pull on Windows (git smc client) doesn't respect .gitattributes's eol=lf

我正在做一个最初在 Unix 环境下开发的项目。

这样的项目有一个 .git 属性文件,强制 eol=lf 超过标准的 crlf-lf 转换

*.sh text eol=lf

这是我的理解 git "keep the original LF line endings".

当我克隆这个存储库时,在拉取完成的那一刻,如果我这样做 git status,一些文件被标记为已经更改(特别是 .sh 文件)

git diff 显示

-FileContent
+FileContent

其中 FileContent 是文件中的所有文本。

我试过:

None对问题有影响。

我也试过:

如何让 git 尊重 .sh 文件的 eol=of 值?


编辑:通过rm .git/index删除索引并执行git reset --hard HEAD后,问题消失了

另外(供参考):没试过 - core.autocrlf 为假

关于 eol 转换:

  1. 确保 core.autocrlf 设置为 false(这样,只有 [.gitattributes 指令]1 会起作用)
  2. 使用text eol=lf
  3. 后跟 git add --renormalize . 以强制应用 .gitattributes 指令。 (since Git 2.16,2018 年第一季度)

after removing the index via rm .git/index and performing git reset --hard HEAD, the problem was gone

这就是 git add --renormalize . 应该效仿的。