2012-04-09 38 views
51

今天早上,我開始從混帳收到此錯誤:索引文件小於預期

致命的:索引文件小於預期

致命的: - 陶瓷失敗

git的狀態想知道發生了什麼以及如何解決它?

+0

你有沒有試過這種http://vertis.github.com/2012/01/24/git-fatal-index-file-smaller-than-expected.html – 2012-04-09 16:09:05

+0

是的,我在發佈之前嘗試過。問題是我的子模塊不斷破壞我的索引文件(不知道爲什麼)。 – karellm 2012-04-09 21:10:35

+0

@karellm你發現_why_這是發生了什麼? – crmpicco 2015-08-12 10:08:37

回答

64

索引文件已損壞,但很容易重新創建。只是將其刪除,並在您的工作目錄重新添加文件:

rm .git/index 
git add . 
+0

如上所述,它不工作,因爲與子模塊衝突,一次又一次地破壞我的索引... 我刪除了子模塊,刪除索引並添加全部。它終於奏效了。謝謝! – karellm 2012-04-09 21:13:29

+0

這是爲什麼發生?在過去的兩週裏,我發生過兩次這樣的事情,我看不出有什麼理由。 – crmpicco 2015-07-21 08:45:28

+2

這不適合我。在發生此錯誤之前,我有一個大部分乾淨的工作副本。刪除索引文件並運行'git add .'後,它表現得好像每個單獨的文件都是新的並需要提交。 – Mark 2016-03-17 16:20:35

54

如果要保持局部的變化,使用以下命令:

$ rm .git/index 
$ git reset HEAD . 

> Unstaged changes after reset: 
    modified foo.txt 
    modified bar.txt 
+0

任何想法爲什麼會發生這種情況?在過去的兩週裏,它發生了大約4-5次。 – crmpicco 2015-07-24 12:51:21

+0

這個答案在這裏是最好的。 此外,如果您使用git子模塊,請注意:刪除這些索引文件(它們位於'.git/modules/src'中)。這讓我想知道爲什麼刪除(主)索引文件後仍然出現錯誤。 – Graftak 2017-09-09 11:14:37