这里有很多关于在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对行结束处理最佳实践没有影响?
答案 0 :(得分:1)
看到的问题是使用EditorConfig是否对Git如何处理行结尾有任何影响。
它不应该对git产生任何影响,因为git会在您暂存内容和提交时检查配置值。
Git将以定义的方式签出并提交内容 此工具影响代码的唯一方法是根据您提供的配置使用定义的CRLF更新工作目录内容。
问题是,尽管有很多关于这个主题的阅读,Git中的行结尾仍然让我感到困惑,所以我不相信上述内容不会引入新问题
你不是唯一一个难以理解git CRLF如何工作的人。在你的情况下,我认为没有任何理由担心你的问题:
所以我想知道使用Editorconfig是否能在Windows上使用行结尾进行最佳实践?
我会在.gitconfig/.gitattributes
中定义所有配置,并且不会在git之外处理CRLF。
答案 1 :(得分:0)
将autocrlf
设为false
。
虽然过去使用源代码控制工具来处理行结尾很有用,但它确实是一个编辑器问题,并且它是通过EditorConfig解决的。