使用 EditorConfig 是否会影响我如何配置 Git 的行结尾?

Nic*_*k F 6 windows git line-endings editorconfig

这里有很多关于在 Git 中处理行结尾的问题。然而,我还没有看到解决的一个问题是使用EditorConfig是否对 Git 应如何处理行结尾有任何影响。

我之所以这么问,是因为几乎我从事的所有项目都有一个.editorconfig设置为 的end_of_line项目lf。这对我来说没问题,但在 Windows 中设置 Git 行结束处理的标准建议是设置autocrlftrue(即在签出时转换为 CRLF)。

在这种情况下,Editorconfig 和 Git 似乎朝着相反的方向发展(Git 会在签出时将行结尾转换为 CRLF,但随后 Editorconfig 可能会在保存文件时将它们转换回 LF)。所以我想知道使用 Editorconfig 是否会使 Windows 上的行结尾最佳实践有所不同?

笔记:

我的倾向是遵循 Editorconfig 并向每个具有指定项目行结尾的文件的项目添加一个包含(即告诉 Git 不要触摸行结尾,无论设置如何)的.gitattributes文件* -text(我知道每个人处理这些项目时使用 Editorconfig 和/或使用使用结尾的操作系统,这似乎可以避免 Git 经常在 Windows 中发出的恼人的行结束转换警告。问题是,尽管阅读了很多关于该主题的文章,Git 中的行结尾仍然让我感到困惑,所以我不确定上述内容不会引入新问题(之前的实验最终破坏了图像文件)。那么:作为一种方法有意义吗?或者 Editorconfig 是否对行结束处理最佳实践没有影响?autocrlf.editorconfiglf.gitattributes

Cod*_*ard 2

所解决的问题是使用 EditorConfig 是否对 Git 应如何处理行结尾有任何影响。

它不应该对 git 产生任何影响,因为 git 在暂存内容和提交内容时检查配置值。

Git 将以定义的方式签出并提交内容。
该工具影响您的代码的唯一方法是根据您提供的配置使用定义的 CRLF 更新工作目录内容。

问题是,尽管有很多关于这个主题的阅读,Git 中的行结尾仍然让我困惑,所以我不相信上面的内容不会引入新问题

您并不是唯一一个很难理解 git CRLF 工作原理的人。就您的情况而言,我认为没有任何理由担心您的问题:

所以我想知道使用 Editorconfig 是否会使 Windows 上的行结尾最佳实践有所不同?

我会在 中定义所有配置.gitconfig/.gitattributes,并避免在 git 之外处理 CRLF。