使用EditorConfig会影响我应该如何为行结尾配置Git吗?

时间:2016-04-19 14:11:27

标签: windows git line-endings editorconfig

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

我问,因为我工作的几乎所有项目都有一个.editorconfig,将end_of_line设置为lf。这对我很好,但在Windows中设置Git的行结束处理的标准建议是将autocrlf设置为true(即在签出时转换为CRLF)。

在这种情况下,Editorconfig和Git似乎正朝着相反的方向拉动(Git会在结账时将行结尾转换为CRLF,但是每当保存文件时,Editorconfig可能会将它们转换回LF)。所以我想知道使用Editorconfig是否能在Windows上使用行结尾进行最佳实践?

注意:

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

2 个答案:

答案 0 :(得分:1)

  

看到的问题是使用EditorConfig是否对Git如何处理行结尾有任何影响。

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

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

  

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

你不是唯一一个难以理解git CRLF如何工作的人。在你的情况下,我认为没有任何理由担心你的问题:

  

所以我想知道使用Editorconfig是否能在Windows上使用行结尾进行最佳实践?

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

答案 1 :(得分:0)

autocrlf设为false

虽然过去使用源代码控制工具来处理行结尾很有用,但它确实是一个编辑器问题,并且它是通过EditorConfig解决的。