2010-05-21 69 views
1
git status 
# On branch master 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: readme.txt 
#  modified: requirements.txt 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

我沒有對這些文件做任何更改。當我運行Git奇怪的行爲

git checkout -- readme.txt 
git checkout -- requirements.txt 

git diff 

它顯示了整個文件的更新,但我發現即使我嘗試此消息。但內容是一樣的。

我試圖刪除它們並再次結帳,但它沒有奏效。

回答

0

如果你能避免任何EOL轉換,嘗試:

git config --global core.autocrlf false 

(我preferred configuration

,並再次克隆你的回購,看看問題是否仍然存在(乾淨的狀態,而不是「修改的所有文件「)。
如果您的編輯支持其他eol風格並且不進行任何轉換,您將不會再受到困擾。

2

猜測:行結束。這些文件可能與您的操作系統具有不同的行結尾,這是git輕鬆(!)轉換的結果。你可以擺弄core.autocrlf選項來嘗試修復這種行爲:github有一些有用的建議here

如果它是一個行結束的問題,它只是這些文件,它可能是值得你正常化他們是一致的,和你的其他庫一樣。這可能只是提交您現在顯示的更改的一種情況。

+0

謝謝。但它應該在我運行checkout命令後工作,對吧? – pocoa 2010-05-21 02:47:45

+0

我已經按照文檔中的描述更改了行尾。它沒有解決問題。 – pocoa 2010-05-21 02:50:43

0

這種事情發生在行結束改變(在終端上不容易看到;在二進制編輯器中查看)或奇怪的寫得很糟糕的程序,它會在所有事情結束時留下空值。

+1

今天有多少忍者?三? – muhmuhten 2010-05-21 02:48:50