Недавно мне пришлось выполнить жесткую перезагрузку, и теперь я получаю сообщение об ошибке в 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
.
Возможное решение состоит в том, чтобы восстановить текущую ссылку из каждой из существующих отдельных ветвей, исключая недопустимую ветвь?
В качестве примечания, у меня нет удаленного источника, из которого мне было бы удобно clone
работать на данный момент, поэтому желательны любые локальные решения. Кроме того, я использую PHP, если это важно по какой-либо причине.
Спасибо.
Редактировать:
Запуск git fsck --full
я получаю следующее сообщение:
$git fsck --full
fatal: failed to read object 687f624bd239de165307d18a8904a77adb32c8a1: Invalid argument
... что странно, потому что, похоже, это относится к другому хэшу.
git log branchName
, и он выдает первую ошибку (ту, что относится кebca16
SHA. Я попробовалgit reflog
и снова получаю ту же ошибку. - person ServAce85   schedule 02.03.2012