4

我最近不得不执行硬重启,当我尝试访问特定分支时,我现在在 git 中收到错误(访问其他分支时不会发生这种情况):

$git checkout branchName
fatal: failed to read object ebca165c3ec7ecd7124f41983dd264e4e1dc0125: Invalid argument

该问题类似于此处描述的问题:如何恢复损坏的 git 存储库?,但不同之处在于我目前不在该分支上执行git status。此外,如果我打电话,git reflog我会收到相同的错误消息。

我尝试使用git branch -d branchNameand删除有问题的分支git branch -D branchName,但没有成功。

显然,我很想保留所有的分支和数据,但如果解决方案是删除那个特定的分支,那就没问题了。此外,不知道这是否有帮助甚至是否重要,但在此分支上执行的最后一个操作是rebase.

一个可能的解决方案是从存在的每个单独的分支中重建当前引用,不包括无效分支?

附带说明一下,我目前还没有一个可以让我满意的远程资源clone,因此需要任何本地解决方案。此外,我正在使用 PHP,以防万一出于任何原因。

谢谢。


编辑:

运行git fsck --full我收到以下消息:

$git fsck --full
fatal: failed to read object 687f624bd239de165307d18a8904a77adb32c8a1: Invalid argument

...这很奇怪,因为它似乎指的是不同的哈希。

4

1 回答 1

1

终于知道怎么回答这个问题了……

只需进入文件夹.git并删除refs/heads/BadBranch

这允许其余branches 正常工作,而只会丢失损坏的branch.

于 2012-03-12T19:37:46.673 回答