2013-01-22 107 views
1

每當我從一個不同於上一次提交的計算機提交(同一個帳戶,不同的SSH密鑰,儘管所有使用Github for Windows),我得到如下結果,其中差異顯示整個文件爲被重寫。多臺計算機到GitHub

https://github.com/Yttrium-tYcLief/Scrotter/commit/0c012c51bae0db198a10a5fc73294c2eb04d1ea0

客戶端,它不同步在GH新提交的Windows之前顯示正確,但一旦提交被同步,客戶端(和所有其他客戶端)上的不同字段顯示整個重寫。

有什麼辦法解決這個問題嗎?

+0

但是GitHub的計算機在運行Unix和有GIT中設置自動改變[不同的行結尾(http://en.wikipedia.org/wiki/Newline#Representations)。 – andrewdotn

+0

因此,Github在提交後會與代碼混淆?這並不酷。我會回報,看看這是否有效。 – yttrium

+0

此外,爲什麼僅在使用一臺與Github連接的計算機(並使用一個SSH密鑰)時不會出現此問題? – yttrium

回答

1

他們都不應該用Unicode結尾保存。

也許你混合概念字符編碼行尾

如果您比較文件的兩個版本,您會注意到它們都是UTF-8編碼,所以沒有問題。正如其他人所暗示的那樣,問題在於行結尾。一些如何用最後一次提交從Unix LF行結尾切換到Windows行結尾CRLF

我發現使用Unix LF行結束符(即使在Windows機器上)最簡單。默認情況下,我的文本編輯器設置爲使用LF行結束符。從此,如果您嘗試使用CRLF行結尾提交,出於某種原因,git會以git diff的形式顯示給您。

crlf