如何让Git将CRLF存储在索引中

时间:2013-02-04 18:08:37

标签: windows git newline git-svn

我在工作时使用git-svn,人们不断抱怨我提交的是LF而不是CRLF。 (我们主要是Windows商店)。

据我所知,当core.autocrlftrue时,工作副本为CRLFfalse时为LF,何时为{{1}它未受影响。我喜欢input作为一个概念,但我希望它会在索引中默认为autocrlf = true,因为这是我们提交给SVN的内容。

有没有办法设置索引结束的行?

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

2 个答案:

答案 0 :(得分:2)

您需要将名为.gitattributes的文件添加到项目的根目录中。这将迫使每个人提交同一行结尾。在您的情况下,如果您想强制crlf,则会在.gitattributes中添加此行:

* text eol=crlf

然后,您还可以将回购邮件中的每个文件标准化一次,再也不用担心它了:Trying to fix line-endings with git filter-branch, but having no luck

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

答案 1 :(得分:0)

事实证明git-svn使用SVN的svn:eol-style属性来决定如何存储行结尾。如果你进入纯SVN结账&添加svn:eol-style设置为native,Git将使用CRLF for Windows和LF for Linux / OSX。

我也有这些设置:

$ git config core.autocrlf false
$ git config core.safecrlf true

我的.gitattributes文件中没有任何内容。