2015-04-07 45 views
2

我正在Mac上開發本地在Windows虛擬機(VMware Fusion)上運行的網站。這些文件位於共享目錄中,因此這兩個操作系統都使用相同的文件。Git Line Endings:Mac到Windows VM

當我在Mac上編輯文件並在Windows VM中運行它們時,出現錯誤,指出「文件意外結束」和「輸入中出現意外字符」。

在我的.gitattributes文件中,我有* text eol=crlf,當我提交時,錯誤不再出現在修改/提交的文件中。

首先,有人可以告訴我,如果我的診斷是正確的:在文件被提交之前,Mac行結尾不會轉換爲Windows,並且在運行文件時會導致「語法樣式」錯誤在Windows VM上?

其次,有沒有一種方法可以配置我的Git存儲庫和/或我的虛擬機,以便兩個操作系統的首選行結束?

回答

1

1)是的,text eol單獨設置僅在結帳時有效。當您添加/提交不同的行結束一個文件,你也應該得到這樣的警告:

warning: LF will be replaced by CRLF in <file you want to commit>. 
The file will have its original line endings in your working directory. 

2)當你想與你的Git倉庫交互之前有正確的行結束符.gitattributes是不夠的。如果可以配置行結束符,可以檢查文本編輯器。大多數文本編輯器都能夠(但是,MAC的TextEdit不是AFAIK)。

+0

謝謝 - 作爲臨時修復,我使用'grunt-lineendings'來保存CRLF中的文件副本,並在Windows上從該目錄運行本地站點。我也會研究一個IDE級別的解決方案。 – cantera