4

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

据我所知,工作副本是什么时候,什么时候core.autocrlf是,什么时候是原封不动的。我喜欢将其作为一个概念,但我希望它会默认出现在索引中,因为这就是 get 对 SVN 的承诺。trueCRLFfalseLFinputautocrlf = trueCRLF

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

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

4

2 回答 2

2

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

* text eol=crlf

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

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

于 2013-02-04T18:19:06.077 回答
1

事实证明,git-svn使用svn:eol-styleSVN 的属性来决定如何存储行尾。如果您进入纯 SVN 结帐并添加svn:eol-styleset to native,Git 将使用 CRLF for Windows 和 LF for Linux/OSX。

我也有这些设置:

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

.gitattributes我的档案里没有任何东西。

于 2013-02-04T21:14:48.883 回答