我最近不得不执行硬重启,当我尝试访问特定分支时,我现在收到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
...这很奇怪,因为它似乎引用了不同的哈希值。
答案 0 :(得分:1)
我终于找到了如何回答这个问题......
只需进入文件夹.git
并删除refs/heads/BadBranch
这允许branch
es的其余部分正常工作,而只会丢失已损坏的branch
中的信息。