2016-11-20 109 views
0

我與很多人共享一個git存儲庫,我們目前發現很難獲得所需的行結束函數。我們想發生:Git跨平臺行結尾

  • 在庫中的所有文件都存儲與LF行結束
  • 當一個Mac用戶拉/克隆/推,一切依舊
  • 當Windows用戶拉動/克隆,一切都轉化爲CRLF與.scr文件除外
  • 當Windows用戶按下,一切都被轉換爲LF(見第一發子彈)

我已經嘗試了幾個不同的.gitattributes解決方案nd我認爲這可以完成,我只是沒有找到正確的方法。

回答

0

這通常是特定於您使用的編輯器。

您可以使用像EditorConfig這樣的一組標準規則來指定公共行結尾。只要你的術語中的每個人都使用IDE,它本身支持它,或者安裝了支持它的插件,你應該能夠實現跨平臺一致性。

一個剝開.editorconfig文件,指定LF行結束可能是這樣的:

# top-most EditorConfig file 
root = true 

[*] 
end_of_line = lf 

與支持一些編輯器內置的,併爲他人插件是listed here

+0

我無法確保每個人都使用相同的IDE。事實上,這將很快成爲一個公共項目,所以我希望能夠讓所有用戶都能夠在不需要自行進行結束調整的情況下拉動項目。 – WhS4

+0

這正是EditorConfig的重點 - 它是跨平臺的,並且受到大多數常見IDE的支持。如果文件存在並且用戶安裝了插件,則無論IDE的配置如何,它都會按照您告訴的方式格式化行結束符。如果用戶在他們的IDE中沒有EditorConfig支持,並且他們的行結尾被配置爲除你想要的之外的東西,那麼你將無法爲他們更改 –

+0

啊我現在看到了。謝謝你的回答,我一定會考慮這個,但我希望只通過git來做到這一點,而不是使用外部插件。有沒有辦法通過.gitattributes和git全局配置獲得所需的行爲? – WhS4