在我的 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
但这并没有帮助。我不明白哪里出了问题。 然后我删除了“子模块”core/kimai-mobile,突然我又可以用了!
我在这个目录中有另一个 git 存储库,我在其中通过转换销毁了另一个索引文件。 我的问题是,我认为“主”存储库索引文件是指。
现在它又开始工作了:)
我的问题是,为什么 git 会查看这个子模块,尽管我的忽略列表中有这个子模块的整个文件夹?
这是我的“主”git 的忽略文件:
.gitignore
...
# kimai mobile
kimai-mobile
...
最佳答案
子模块是完整的 git 存储库。因此它们可以包含 .git 子目录(或至少一个指向它的链接)。
因此,如果您对根存储库根目录中 .git 以外的所有文件使用您的工具,您仍然可以破坏子模块中的一些内部 .git 文件。
关于git 状态给我一个错误 : bad index file sha1 signature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11583753/