6

在我的 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

但这没有帮助。我不明白出了什么问题。然后我删除了“子模块”核心/kimai-mobile,突然我可以再次使用它!

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

现在它又开始工作了:)


我的问题是,尽管我的忽略列表中有这个子模块的整个文件夹,为什么 git 会查看这个子模块?

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

.gitignore

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

1 回答 1

6

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

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

于 2012-07-20T17:54:15.860 回答