我大约每小时一次收到此消息:
错误:坏索引文件 sha1 签名致命:索引文件损坏
我已经在网上查看并知道如何解决它,但试图找出导致它的原因。
我在服务器上使用命令行工具,但在我的本地计算机上安装了目录(通过 sshfs)。但我不使用本地 git,只使用远程服务器上的版本。
我能想到的唯一另一件事是 IntelliJ,但我停止使用 git 命令,认为它导致了冲突。
有没有人知道问题可能是什么?
我大约每小时一次收到此消息:
错误:坏索引文件 sha1 签名致命:索引文件损坏
我已经在网上查看并知道如何解决它,但试图找出导致它的原因。
我在服务器上使用命令行工具,但在我的本地计算机上安装了目录(通过 sshfs)。但我不使用本地 git,只使用远程服务器上的版本。
我能想到的唯一另一件事是 IntelliJ,但我停止使用 git 命令,认为它导致了冲突。
有没有人知道问题可能是什么?
我不使用本地 git,只使用远程服务器上的版本。
我打赌你的问题就在那里。
在你的仓库中做你的工作。当您的作品以适合发布的形式发布时,推送到服务器存储库。如果你想分享你正在进行的工作,请参见团队成员本地存储库之间的 Git 推送/拉取
(编辑:您正在使用sshfs
。不要为任何最少的多用户执行此操作。它是 . 的单用户便利FUSE
前端sftp
。即使您关闭它的缓存仍然不会结束比赛。)
如果您将 git 安装在远程服务器位置,该位置也用作 IntelliJ 项目的根目录,那么您将在 git 上发生锁定争用。IntelliJ 将不断损坏您的 git 索引,因为您也可能(例如)在终端会话的命令行中的 repo 中使用 git。
解决方案是取消注册 IntelliJ 软件中的任何版本控制,方法是转到“设置”>“版本控制”并从该列表中删除您的项目。这应该告诉您的 IDE 完全忽略该项目根文件夹中 git 的存在,并永远停止争夺对 git 索引的控制权。
另请参阅此问题:如何在 phpstorm 中禁用版本控制?
除非您找到直接解析Git 索引文件.git
的方法,否则请运行以下命令,从存储库的目录中删除 Git 索引文件并“获取当前分支并将其重置为指向其他位置,并带上索引和工作树沿“(但在此之前,请记住备份您.git/index
的以防万一):
$ rm .git/index
$ git reset