git索引损坏

Posted

技术标签:

【中文标题】git索引损坏【英文标题】:git Index corruption 【发布时间】:2012-10-29 04:43:40 【问题描述】:

由于某种原因,我的 Git 索引文件不断损坏。

例如,如果我这样做 git status 我会得到

错误:错误的索引文件 sha1 签名和致命的:索引文件损坏

这已经发生在我身上好几次了。我在想这可能与我的开发环境有关。我在 Mac 上工作,有一个 VMWare 虚拟机运行 Debian 和 Apache mysqlphp 和 Git。我使用 Samba 连接到 vm 以在我的 IDE 中编辑我的文件。所以我认为这与桑巴舞有关?有没有更好的连接/共享工作空间的原因?

问题是我什至不知道如何重现问题,我尝试了各种方法来打开和关闭编辑和关闭,重新启动,但仍然没有运气。

但是我突然意识到我突然又得到了错误。我目前的工作是删除索引文件 .git/index 并执行 git reset。

有人有什么想法吗?

【问题讨论】:

您已经有一段时间没有问这个问题了。你找到答案了吗?因为我们在工作中的设置非常相似,一些同事也有同样的问题。我们在 OSx 上工作,在 phpStorm 中直接在我们 (samba) 挂载的服务器文件夹中。 对不起,没有。从那以后我切换到 Centos,我不再有这个问题。 【参考方案1】:

您的解决方法是一个很好的解决方法(推荐在““Index file corrupt””)。

但如果 samba 有问题,最好获得 两个 repos:

Mac 上的一个,您可以: 在本地编辑您的文件 设置Git server(获取守护进程、ssh、https、...) VM 上的一个,您可以在其中从 Mac 存储库中提取并更新您的工作存储库(在 VM 上),以便运行您的 PHP 站点。

【讨论】:

我认为我对我的开发环境不是很清楚。我的 VM 是我的开发环境,而不是我的 mac。我在计算机之间移动了一下,因此在 VM 中进行开发设置以使其可移植是有意义的。这就是我设置 samba 的原因,因此我可以简单地连接到共享。我不知道是 samba 导致了我只是怀疑的问题。 @garethhallnz 好的,所以反向 mac 和 VM,但想法仍然存在:在本地编辑,转到其他环境并从 VM 存储库中提取。 但这并不能解决我的问题。索引文件仍然损坏 @gar 在这种情况下,samba 不是问题。 @garethhallnz 我怀疑您最终更改了设置以解决索引损坏问题?【参考方案2】:

尽管你应该检查this :) 做一点git reset --keep。 @VonC 推荐的那个!

【讨论】:

以上是关于git索引损坏的主要内容,如果未能解决你的问题,请参考以下文章

使用 Git 时如何解决“错误:错误索引 – 致命:索引文件损坏”

git 中的分支损坏,致命:您当前的分支似乎已损坏

ORACLE 如何检查找出损坏索引

Git 克隆因文件损坏而失败

损坏的 Git 存储库(数据流错误)[重复]

删除损坏的 git 文件