Git索引损坏

3
由于某些原因,我的Git索引文件一直出现损坏的情况。
比如我输入 git status 就会出现下面的错误信息:

error: bad index file sha1 signature and fatal: index file corrupt

我已经遇到过好几次这种情况了。我在Mac上工作并且运行着一个VMWare虚拟机,上面跑着Debian、Apache、MySQL、PHP和Git。我通过Samba连接到虚拟机,在我的IDE中编辑文件。所以我认为这可能与Samba有关?有没有更好的方式来连接/共享工作空间?
问题是,我不知道如何重现这个问题,我尝试了各种方法打开、关闭、编辑、重启等,但还是没有解决。但是,突然间我又发现了这个错误,而我却不知道原因。目前我的解决方法是删除 .git/index 文件然后执行 git reset。
有人有任何想法吗?

你提出这个问题已经有一段时间了,你找到答案了吗?因为我们在工作中的设置非常相似,一些同事也遇到了同样的问题。我们在OSx上工作,在phpStorm中直接使用(samba)挂载的服务器文件夹。 - Pjetr
抱歉,不行。自从那时候我换成了Centos,我再也没有遇到这个问题了。 - garethhallnz
2个回答

3

你的解决方法是不错的(在“Index file corrupt”中推荐)。

但是如果Samba存在问题,最好获取两个仓库:

  • 一个在Mac上,你可以:
    • 本地编辑文件
    • 设置Git服务器(支持守护进程、ssh、https等)
  • 一个在虚拟机上,在那里你可以从Mac仓库中拉取并更新你的工作仓库(在虚拟机上),以便运行你的PHP网站。

我觉得我对我的开发环境表述不是很清楚。我的虚拟机是我的开发环境,而不是我的 Mac。我经常在不同的电脑之间切换,所以在虚拟机中设置开发环境是有意义的,可以让它更加便携。这就是为什么我设置了 Samba,这样我就可以简单地连接到共享文件夹。我不确定是否是 Samba 导致了问题,只是怀疑可能存在问题。 - garethhallnz
@garethhallnz 好的,所以反向mac和VM,但是想法保持不变:本地编辑,然后到另一个环境并从VM存储库中拉取。 - VonC
但这并没有解决我的问题。索引文件仍然会损坏。 - garethhallnz
@gar 在这种情况下,Samba 不是问题。 - VonC
@garethhallnz 我猜你最终改变了设置以解决索引损坏的问题? - VonC

0
你应该检查一下this :) 并且运行一下git reset --keep。这是@VonC 推荐的!

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