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

时间:2012-07-20 16:53:07

标签: git indexing git-submodules

在我的git存储库中,我对许多文件进行了utf-8转换,但仅在.git目录下,因此未触及.git目录。 在此转换之前,我创建了一个新的测试分支,但现在我不能再使用我的repo了,我无法切换回master。 当我这样做时:

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存储库,我用我的转换销毁了另一个索引文件。 我的问题是,我认为“主”存储库索引文件的意思是。

现在又恢复了工作:)


我的问题是,为什么git会查看这个子模块,虽然我的忽略列表中包含了这个子模块的整个文件夹?

这是我的“主要”git的忽略文件:

.gitignore

...
# kimai mobile
kimai-mobile
...

1 个答案:

答案 0 :(得分:6)

子模块是完整的git存储库。所以它们可以包含.git子目录(或者至少是它的链接)。

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