【发布时间】:2012-02-29 19:05:45
【问题描述】:
我最近不得不执行硬重启,当我尝试访问特定分支时,我现在在 git 中收到错误消息(访问其他分支时不会发生这种情况):
$git checkout branchName
fatal: failed to read object ebca165c3ec7ecd7124f41983dd264e4e1dc0125: Invalid argument
问题与此处描述的问题相似:How to restore a corrupted git repository?,但不同之处在于我目前不在该分支上执行git status。另外,如果我打电话给git reflog,我会收到同样的错误信息。
我尝试使用git branch -d branchName 和git branch -D branchName 删除有问题的分支,但没有成功。
显然,我希望保留所有分支和数据,但如果解决方案是删除该特定分支,那就没问题了。此外,不知道这是否有帮助甚至是否重要,但在此分支上执行的最后一个操作是 rebase。
可能的解决方案是从存在的每个单独的分支(不包括无效分支)重建当前引用?
顺便说一句,我目前还没有一个可以让clone感到舒服的远程资源,因此需要任何本地解决方案。另外,我使用 PHP 以防万一。
谢谢。
编辑:
运行git fsck --full 我收到以下消息:
$git fsck --full
fatal: failed to read object 687f624bd239de165307d18a8904a77adb32c8a1: Invalid argument
...这很奇怪,因为它似乎引用了不同的哈希。
【问题讨论】:
-
如果你运行 'git log
' 会发生什么?也许您可以在变基之前获得提交的 SHA,然后检查 -
也试试 git reflog,看看你是否可以在 rebase 之前签出(或重置)到提交。在尝试其中任何一个之前,我真的会在安全的地方获取你的 repo 的完整副本
-
已复制...现在我尝试了
git log branchName,它给了我第一个错误(指的是ebca16SHA。我尝试了git reflog,我又收到了同样的错误错误。 -
为什么不从备份中恢复存储库?
标签: php git branch fatal-error git-log