2017-05-28 163 views
1

我知道Windows使用CRLF,並且最好讓Git在提交之前將行結束符更改爲LF,並在簽出時返回到CRLF。出於這個原因,我有core.autocrlf設置爲true。然而,與其他線索相反(例如,this),我仍然收到此警告:git config core.autocrlf是真的,但我仍然收到警告?

警告:LF將由[FILE_NAME]中的CRLF取代。 該文件將在其工作目錄中具有其原始行尾。

首先,我認爲設置core.autocrlf爲真應該停止這些警告。其次,Git應該在提交時將LF轉換爲CRLF,而不是相反?有趣的是,我只提交了很多文件,並且只有其中兩個(.csproj和.cs)的警告。

P.S.我在Windows上使用Git Bash。

+0

[定製Git-Git配置](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration)以及緊接在部分後面的'core.whitespace'部分'core.autocrlf'提供任何見解或幫助?你是如何檢查你有'core.autocrlf'設置正確的? –

+0

我運行了'git config core.autocrlf'並打印出了'true'。 – lfk

回答

0

讓Git在提交之前將行結束符更改爲LF並檢出時返回CRLF是一種很好的做法。

它是,但是不是與core.autocrlf。
你應該總是設置core.autocrlf爲false,因爲它會嘗試轉換EOL(行尾)爲所有文件(包括非文本文件)

如果您有需要轉換的文件,請使用eol directive in a .gitattributes file
確保使用latest Git for Windows雖然:有一個bug in Git 2.10

這就是說,如果您仍然想使用core.autocrlf,請參閱「Make Git 「LF will be replaced by CRLF」 warnings go away」:您可以刪除您的索引並再次結帳。

+0

不過,爲什麼在添加索引時用CRLF代替LF?我認爲它應該是相反的。 – lfk

+0

@Farshid不知道:我知道https://stackoverflow.com/a/14039909/6309。你使用的是什麼Git版本?最後一個2.13? (https://github.com/git-for-windows/git/releases/)你正在做什麼命令來觸發該警告消息? – VonC

+0

@Farshid您的回購中是否有任何.gitattributes,如https://github.com/git/git/commit/15c96723457cfa1be6cdbd74e3131ecf13cd9790中所示?這將解釋消息,如果一個eol directove強迫eol到LF。 – VonC

相關問題