2017-07-08 97 views
4

我正在開發一個涉及多個開發人員的Android項目,其中一些開發人員在Windows,其他Linux/MacOS上。由於我在Windows上,我已經指示Git的配置如下,以避免出現問題:Android Studio - CRLF vs LF用於基於Git的多平臺項目

autocrlf = true 
safecrlf = true 

這個作品大多正常。我在Android Studio中創建的任何.java/XML/etc文件都在CRLF中,當我將它們推入回購庫時轉換爲LF,然後在將更改拖入本地副本時回到CRLF。問題是,某些類型的文件(如矢量可繪製資產)會由於某種原因而在LF中生成。所以,當我嘗試將它們添加到Git的,我得到的「不可逆轉換」錯誤:

enter image description here 我知道我可以設置safecrlf = warn,但是從我的理解,這個承載着腐敗的二進制文件的風險,如果Git的失誤他們對於文本文件,所以我正在尋找更安全的解決方案。現在我手動將矢量資源編輯到CRLF中,然後再將它們添加到Git中,避免了上述錯誤消息,但無法爲每個文件重複該過程。任何方式強制Android Studio生成CRLF中的所有本地文件?

+1

是否在'.gitattributes'中標記爲'text'?請參閱https://help.github.com/articles/dealing-with-line-endings/ – phd

回答

1

設置core.autocrlftrue(我通知:against it since 2010):它留給假。

任何要在.gitattribtes file中管理的文件,尤其是since Git 2.10。見release note

echo "*.java text=auto eol=crlf" >.gitattributes 

The combination has been fixed to be equivalent to doing

$ git config core.autocrlf true 

隨着.gitattributes,你可以限制EOL轉變到精確的設定你想要的文件,而不是盲目地將它放在所有回購文件。
查看更多「Checking-out and checking-in」。