我最近不得不执行硬重启,当我尝试访问特定分支时,我现在收到一个git错误(访问其他分支时不会发生这种情况):
$git checkout branchName
fatal: failed to read object ebca165c3ec7ecd7124f41983dd264e4e1dc0125: Invalid argument
这个问题与这里描述的问题类似:如何恢复损坏的git存储库?,但不同之处在于我当前不在该分支上执行CCD_ 1。此外,如果我调用git reflog
,我会收到相同的错误消息。
我尝试使用git branch -d branchName
和git branch -D branchName
删除有问题的分支,但没有成功。
显然,我很想保留所有的分支和数据,但如果解决方案是删除特定的分支,那也没关系。此外,不知道这是否有帮助,甚至是否重要,但对该分支执行的最后一个操作是rebase
。
一个可能的解决方案是从存在的每个单独分支重构当前ref,不包括无效分支吗?
顺便说一句,目前我还没有一个可以轻松使用clone
的远程源,因此需要任何本地解决方案。此外,我正在使用PHP,以防由于任何原因而引起的问题。
谢谢。
编辑:
运行git fsck --full
时,我收到以下消息:
$git fsck --full
fatal: failed to read object 687f624bd239de165307d18a8904a77adb32c8a1: Invalid argument
这很奇怪,因为它似乎指的是不同的散列。
我终于找到了如何回答这个问题。。。
只需进入文件夹.git
并删除refs/heads/BadBranch
这允许其余的git status
0es正常工作,同时只丢失损坏的branch
的信息。