在我的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
...
答案 0 :(得分:6)
子模块是完整的git存储库。所以它们可以包含.git子目录(或者至少是它的链接)。
因此,如果您在根存储库的根目录中除.git之外的所有文件上使用您的工具,您仍然可以破坏子模块中的一些内部.git文件。