2013-10-09 73 views
0

我正在嘗試提交一個帶有CRLF行結尾的文件,並讓另一個人檢查出它,還有CRLF行尾。如何將LF轉換爲CRLF結賬

我得在.gitattributes如下:

* text=auto 

當我添加文件,CRLF結尾,我得到以下信息:

warning: CRLF will be replaced by LF in test.cs 
The file will have its original line endings in your working directory. 

如果我克隆庫,文件獲取用LF線結尾克隆。我可以通過設置*.cs text eol=crlf來覆蓋它,但這不是很好的支持,因爲如果對於每種文件類型都必須這樣做。

我誤會了,還是不應該text=auto把LF換回CRLF?這是一個錯誤?

有沒有辦法讓git轉換行結束?或者,最好不要改變它們?我們正在與所有CRLF文件工作/平臺因此,最好的git只是不會觸摸到EOL

回答

1

與其說

* text=auto 
.gitattributes

的,說

* text eol=crlf 

報價Dealing with line endings

text eol = crlf

此設置告訴git規範化提交時指定的文件,並且 總是在結帳時將它們轉換爲CRLF。對於文件 ,您應該使用它來保留CRLF結尾,即使在OSX或Linux上也是如此。

+0

如果我這樣做,我必須要麼做每個擴展名,要麼標記二進制文件,也是每個擴展名。這就是我現在正在做的事情,但我不喜歡它,因爲另一個開發人員可以添加我沒有考慮過的文件類型並遇到問題。你能評論我發佈的更新嗎?「我誤解了......」嗎?在我看來,'text = auto'旨在將LF退回到CRLF,如果您在適當的平臺上籤出。 – Turch

+0

@Turch:git不會將'text'設置應用於二進制文件。 –

+0

@EdwardThomson,但'*'告訴git將'text eol = crlf'應用於所有文件 - 所以我必須告訴它哪些是二進制的,例如。 '* .dll二進制文件' – Turch

相關問題