2013-02-04 59 views
2

我在工作中使用git-svn,人們不斷抱怨我正在提交LF而不是CRLF's。 (我們大多是Windows商店)。如何在索引中使用Git商店CRLF

至於我可以告訴大家,當core.autocrlftrue工作拷貝CRLF,當false這是LF,當input它保持不變。我喜歡autocrlf = true作爲一個概念,但我希望它會在索引中默認爲CRLF,因爲這就是致力於SVN的原因。

有沒有方法可以設置索引使用哪一行?

我見過core.eol,但這也似乎只設置工作副本使用什麼,而不是索引。

回答

1

您需要將一個名爲.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

+0

我可以在沒有'.gitattributes'文件的情況下執行此操作嗎?也許是'.git/info/attributes'文件呢? (因爲我正在使用'git-svn') – kelloti

+0

是的,您也可以將此設置放入此文件並具有相同的效果(僅適用於您)。 –

+0

您可以在git文檔上查看文件優先級部分:http://www.kernel.org/pub/software/scm/git/docs/gitattributes.html –

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文件什麼。