Воссоздать Git Ref после фатальной ошибки
Недавно мне пришлось выполнить жесткую перезагрузку, и теперь я получаю ошибку в git, когда я пытаюсь получить доступ к определенной ветви (это не происходит при доступе к другим ветвям):
$git checkout branchName
fatal: failed to read object ebca165c3ec7ecd7124f41983dd264e4e1dc0125: Invalid argument
Задача аналогична описанной здесь: Как восстановить поврежденный репозиторий git?, но отличается тем, что я в настоящее время не нахожусь на этой ветке для выполнения git status
. Кроме того, если я вызову 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
...что странно, потому что это, кажется, относится к другому хэшу.