是什么导致损坏的git索引文件

时间:2013-08-29 21:09:44

标签: git intellij-idea

我每小时都会收到一条消息:

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

我已经在线查看并知道如何解决它,但试图找出导致它的原因。

我在服务器上使用命令行工具,但在我的本地计算机上安装了目录(通过sshfs)。但我不使用本地git,只使用远程服务器上的版本。

我能想到的另一件事是IntelliJ,但是我停止使用git命令认为它导致了冲突。

有没有人知道问题可能是什么?

3 个答案:

答案 0 :(得分:1)

  

我不使用本地git,只使用远程服务器上的版本。

我在那里打赌你的问题。

在你的回购中做你的工作。当你的工作形状适合发布时,推送到服务器仓库。如果您想分享您的在制品,请参阅例如Git push/pull between team members local repositories

(编辑:你正在使用sshfs。对于任何一点多用户而言,请不要这样做。它是FUSE的单用户便利sftp前端。甚至如果你关闭它仍然无法关闭比赛的缓存。)

答案 1 :(得分:0)

除非您找到直接解析Git index file的方法,否则请运行以下命令,从存储库中的.git目录中删除Git索引文件并“take the current branch and reset it to point somewhere else, and bring the index and work tree along”(但之前,请记住备份.git/index以防万一):

$ rm .git/index
$ git reset

答案 2 :(得分:0)

如果您在远程服务器位置安装了git,该位置也充当IntelliJ项目的根目录,那么您将在git上进行锁争用。 IntelliJ会不断破坏你的git索引,因为你也可能(例如)在终端会话的命令行中使用你的repo中的git。

解决方案是通过转到设置>取消注册IntelliJ软件中的任何版本控制。版本控制并从该列表中删除您的项目。这应该告诉你的IDE完全忽略该项目根文件夹中git的存在,并永远停止竞争控制git索引。

另请参阅此问题:How to disable version control in phpstorm?