如何让 Git 在索引中存储 CRLF

kel*_*oti 9 windows git newline git-svn

我在工作中使用git-svn,人们不断抱怨我犯了LF' 而不是CRLF' 。(我们主要是一家 Windows 商店)。

据我所知,工作副本什么时候是core.autocrlf,什么时候是,什么时候保持不变。我喜欢作为一个概念,但我希望它默认在索引中,因为这就是 get 提交给 SVN 的内容。trueCRLFfalseLFinputautocrlf = trueCRLF

有没有办法设置索引使用哪一行结尾?

我见过core.eol,但这似乎也只设置工作副本使用的内容,而不是索引。

Sim*_*ias 2

您需要将一个名为的文件添加.gitattributes到项目的根目录中。这将迫使每个人都提交相同的行结尾。在您的情况下,当您想要强制时crlf,您将在以下位置添加这一行.gitattributes

* text eol=crlf
Run Code Online (Sandbox Code Playgroud)

然后,您还可以对存储库中的每个文件进行一次规范化,而不必再担心它:尝试使用 git filter-branch 修复行结尾,但没有运气

您还可以参考 github 行尾指南:https ://help.github.com/articles/dealing-with-line-endings

  • 对于“eol=crlf”,它表示“此设置强制 git 在签入时标准化此文件的行结尾,并在签出文件时将它们转换为 CRLF。”对我来说,这意味着它仍然在索引中标准化为“LF” (读起来很模糊)并在工作副本中转换为“CRLF”。但我希望它在索引中标准化为“CRLF”。这可能吗? (4认同)
  • 提出问题的人似乎想将 CRLF 存储在索引中。这不会那样做。 (2认同)