2013-03-09 59 views
1

,當我在控制檯輸入:git的承諾致命錯誤

git init 
git add . 

一切OK

當我輸入:

git commit -m "final" 

我得到:

error: object file .git/objects/18/d50376886bb9702194048cd450960abe40d223 is empty 
error: unable to find 18d50376886bb9702194048cd450960abe40d223 
fatal: 18d50376886bb9702194048cd450960abe40d223 is not a valid object 

什麼問題?

+0

也許在目錄'18'中沒有名爲'd50376886bb9702194048cd450960abe40d223'的文件。可能是,它發生是因爲在執行'git add .'後,這個文件被刪除了。 – stackoverflowery 2013-03-09 07:05:43

回答

0

當您運行git add .時,無論您在當前目錄中擁有的新文件和更改的文件都進入了git的版本控制。這就是文件內容被存儲爲.git/objects下可用的git對象的地方。

在你的情況下,該內容被存儲爲.git/objects/18/d50376886bb9702194048cd450960abe40d223

問題看起來創造了哈希18d50376886bb9702194048cd450960abe40d223一個新的git對象,你跑git add命令,這個文件既沒有得到寫入後硬盤驅動器正確,或者可能由於某些硬盤錯誤而被刪除或甚至損壞。

+0

應該怎樣解決這個問題?重新安裝git或刪除所有.git文件? – technobot 2013-03-09 14:30:40

+0

@technobot:首先,製作回購的備份(將整個回購文件夾放入焦油或其他東西);如果你願意,你可以嘗試使用['git fsck'](http://goo.gl/BUB8u)來拯救(http://sethrobertson.github.com/GitFixUm/也可能有幫助);否則,或者如果這不起作用,如果可能的話,重新克隆回購(假設您以前曾將該回購推送到遠程) – 2013-03-09 15:07:52