Procurar confirmações órfãs no Git

Meu repositório git de alguma forma ficou estranho - carreguei o msysgit hoje de manhã e, em vez de o nome do ramo ser mostrado após o diretório atual, ele diz "((ref: re ...))", 'git status' relata tudo como um novo arquivo, 'git log' e 'git reflog' me dizem "fatal: revisão padrão incorreta 'HEAD'" e assim por diante.

Fazer 'git reflog --all' ou 'gitk --all' me mostra que o restante do repositório está intacto, mas parece que o ramo em que eu estava trabalhando acabou de desaparecer, o que explica por que o HEAD parece não existir / aponte para qualquer coisa.

Eu sei que o git mantém todo tipo de informação e estou assumindo que meus commits ficaram órfãos de alguma forma, então existe algum comando que me mostrará esses commits para que eu possa redefinir HEAD?

EDIT: Oh querida. Eu descobri 'git fsck' e 'git fsck --full' relata "fatal: o objeto 03ca4 ... está corrompido". O que diabos eu posso fazer sobre isso?

EDIT: Oh querida oh querida. Fiz check-out de outra ramificação, tentei recriar a ramificação original com o mesmo nome usando 'git checkout -b lostbranchname' e o git diz "erro: não é possível resolver a referência refs / heads / lostbranchname: sem erro, fatal: falha bloquear ref para atualização: sem erro ". 'No error' deve ser um erro particularmente desagradável. Parece que ainda está por aí, mas incapaz de ser usado e incapaz de ser morto.

Edição: Super duper oh querido. Fiz um monte de descompactação, reembalagem e substituição das coisas, conforme sugerido aqui:Como recuperar objetos Git danificados por falha no disco rígido?, mas agora estou recebendo outro hash relatado como corrompido, por algo tão inócuo quanto o 'status git'. Eu acho que tudo está bem. Git é adorável e tudo, mas eu não deveria ter que lidar com esse tipo de coisa.

questionAnswers(3)

yourAnswerToTheQuestion