git status给了我一个错误:糟糕的索引文件sha1签名

git status给了我一个错误:糟糕的索引文件sha1签名

问题描述:

在我的git仓库中,我做了许多文件的utf-8转换,但只在.git目录下,因此没有触及.git目录。 在此转换之前,我创建了一个新的测试分支,但现在我无法再使用我的回购,我无法切换回主分支。 当我做:git status给了我一个错误:糟糕的索引文件sha1签名

git status 

或任何其他的git命令我得到:

error: bad index file sha1 signature 
fatal: index file corrupt 
fatal: 'git status --porcelain' failed in submodule core/kimai-mobile 

我搜索一下,找到了命令:

rm -f .git/index 

,并在此之后:

git reset 

但这没有'帮助。我不明白什么是错的。 然后我删除了“submodule”核心/ kimai-mobile,突然间我可以再次使用它!

我在这个目录中有这个其他的git仓库,在这个仓库中,我通过转换销毁了其他索引文件。 我的问题是,我认为“主”repositorys索引文件的意思。

现在重新工作:)


我的问题是,为什么混帐看看这个子模块,虽然我有这个子模块在我ignorelist的整个文件夹?

这是我的 “主” 混帐的忽略文件:

.gitignore 

... 
# kimai mobile 
kimai-mobile 
... 
+0

什么问题? – 2012-07-20 17:51:32

子模块完成git仓库。所以他们可以包含.git子目录(或至少一个链接到它)。

因此,如果您在根存储库根目录中的.git之外的所有文件上使用了您的工具,仍然可能会损坏子模块中的某些内部.git文件。