git状态显示错误:坏的索引文件sha1签名

6

在我的git存储库中,我对许多文件进行了utf-8转换,但只在.git目录下方进行,因此不会影响.git目录。 在进行此转换之前,我创建了一个新的测试分支,但现在我无法再使用我的库,也无法切换回主分支。 当我执行以下操作时:

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”core/kimai-mobile,突然间我又可以使用它了!
我在这个目录中有另一个git存储库,在其中我用我的转换破坏了其他索引文件。 我的问题是,我认为“主”存储库的索引文件是指定的。
现在它又可以工作了 :)
我的问题是,为什么git会查看这个子模块,尽管我已经将这个子模块的整个文件夹放在我的忽略列表中?
这是我的“主”git的忽略文件:
.gitignore

...
# kimai mobile
kimai-mobile
...
1个回答

6

子模块是完整的git存储库。因此,它们可以包含.git子目录(或至少是指向该目录的链接)。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接