2011-11-22 29 views
42

我使用eclipse egit和github。我發現一些奇怪的東西,我沒有改變任何東西,但egit標記爲「改變」的文件。查看圖片:沒有什麼變化,但eclipse egit標記文件已更改

  1. 「的run.bat」 被標記爲文件 「改成」

    enter image description here

  2. 與 「Git的索引文件」 進行比較,就可以看到沒有什麼不同

    enter image description here

  3. 與「在頭文件」進行比較,就可以看到沒有什麼不同既不

    enter image description here

我的朋友使用Mac和我用windows,但是大家都配置混帳爲「提交UNIX lineend」 ..我也檢查了我的源和頭部的lineend,它們是相同的(我配置的git將它們轉換爲 「\ r \ n」 拉時)

哪裏錯了?這是Egit的錯誤嗎?

+1

檢查行結束符 - CR,CR-LF – kan

+0

「我在配置git時將它們轉換爲」\ r \ n「:這應該是原因吧,不是嗎? – VonC

+1

看起來你在一個文件中混合了行結尾。不知道它將如何工作。自動轉換對我來說是難以預料的,我通常禁用它... – kan

回答

37

的第一件事情我已經在Git中有問題與。

我這樣永遠說:

git config --system core.autocrlf false 

爲了擺脫CR的diff和patch意見強調,用途:

git config --system core.whitespace cr-at-eol 

如果你與他人分享您的計算機,更換「 - '系統'與' - 全球'。

+0

謝謝,它幫助很大! – Freewind

+12

沒有幫助我。您提到的更改在使用git命令行時引入,但不適用於EGit。 – Ztyx

+3

@Ztyx請參閱我的答案,EGit解決方案。 –

46

Eclipse的首選項/團隊/混帳/配置/用戶設置

( 「核心」 部分)

key: autocrlf 
value: false 

的關鍵應該已經存在,所以只需要修改的值。

如果創建一個新的密鑰,然後使用core.autocrlf

+0

這幫了我。謝謝! –

+0

這不適合我。用戶設置選項卡中顯示的* Location *屬性是我的全局gitconfig('C:\ Users \ William \ .gitconfig')並具有所有正確的設置。但是,'git commit -m'可以正常工作,而Eclipse的* Commit *選項會對我的行結束符進行操作。 – wchargin

+1

這幫了我,但我不得不刪除回購,並再次導入它。 –

11

作爲後續行動,我只是碰到了同樣的問題,另一個原因,例如:It檢測的所有文件,改變的是至少在Cygwin的混帳一起使用時,POSIX文件權限問題。

下面將解決這個問題;但需要記住的是,這也意味着他們將被忽略,那麼:

$ git config core.filemode false

+3

非常感謝!這也需要關閉/打開項目。 – Valakyr

+0

這也是我的問題。現在我能夠修復文件的權限並提交。 – jlh

+0

這也是我的問題。非常感謝你,過去的一小時尋找解決方案已經收到了回報! –

5

爲換行日食的具體問題,你也可以在Eclipse中更改首回車符,你可以改變新的文本文件行分隔符從Windows語法到Unix,這應該有所幫助。

Eclipse Next File Line Delimiter settings

+0

是的,解決了它,而無需觸摸任何與git相關的任何東西 – ccleve

+1

這是autocrlf設置爲false的正確答案 –

+0

更改**只是**此偏好有所幫助,但必須在更改設置後重新啓動Eclipse。順便說一句我在Windows 10上使用Eclipse時遇到了這個問題,並且在Windows-Eclipse上報告的文件被更改了,最初在Ubuntu上進行了修改,並推送到遠程倉庫並在Windows計算機上運行。謝謝。 –

-3

在常規 - >工作區。選擇文本編碼UTF-8

+1

這將如何幫助eclipse/git中的行結束問題? –

+0

你能否詳細說明一下? –

+1

你看過這個問題和答案嗎?編碼如何與這個問題有關? –

2

您可以忽略Compare/Patch下Eclipse設置的空白區別。 首選項 - >常規 - >比較/修補程序,您可以在右側找到「忽略空白區域」,然後選擇此選項。

相關問題