2011-03-23 80 views
0

Git存儲庫下的文件。我只添加了一些代碼。當我執行git diff時,它會用「 - 」顯示文件的所有舊版本,然後用「+」顯示文件的全部新版本。Git Diff顯示未刪除的文件(帶「 - 」)

例如,

print "hello"
print "stack overflow" #new added code
print "world"

與git的差異表現爲

-print "hello"
-print "world"
+print "hello"
+print "stack overflow" #new added code
+print "world"

相反的預期

print "hello"
+print "stack overflow" #new added code
print "world"

這對reitveld Code Review工具也是一個問題。 我在做一些事情錯誤或缺少一個git配置。

更新:Eclipse自動格式化文件,並且空格變成了折騰,因此差異如上所述。仍然必須有一種方法來避免這種情況。有什麼要說的嗎?

回答

3

檢查不可見的空白或不同的行結束符(CR vs CR/LF vs LF,具體取決於您用於創建或修改文件的平臺和編輯器)。

+3

並嘗試使用「-b」或「-w」標誌進行區分以忽略空白更改或完全忽略空白。 – araqnid 2011-03-23 13:37:02

+0

使用git config試用CRLF和LF core.eol = crlf。兩者都沒有幫助。 -b選項也沒有幫助。 – sheki 2011-03-23 13:39:40

1

嘗試使用:

git diff --ignore-space-at-eol 

忽略行尾。如果這是你的問題,不幸的是你的提交仍然是你不使用上面的標誌時看到的。

2

可能是文件以unix模式(\ n)保存,但以windows模式(\ r \ n)保存,因此導致文件中的所有行被標記爲已更改。請確保將文件保存爲存儲模式。