Início·Mensagens de erro

git · Git

A mensagem

fatal: bad object 8a3f21c

O que significa

O nome que você deu não resolve para nada que o git consiga ler: ou o objeto não está neste repositório, ou está e é danificado. Acontece com um hash copiado de outro clone ou de um clone raso, com um hash truncado curto demais, ou com um objeto realmente corrompido depois de um problema de disco. O git fsck --full relata objetos ausentes e quebrados só lendo, e um hash de outra pessoa precisa de um git fetch antes de o objeto existir aqui. Se o fsck relatar corrupção, clonar de novo é mais rápido e certo que reparar — copie antes os seus arquivos não commitados para um lugar seguro.

A correção

git fsck --full
Impresso por
git
Git
29

Quase todo erro do git é uma recusa que quer dizer "fazer isso a partir deste estado perderia algo"; fatal: significa que o git parou sem alterar nada, e as linhas hint: abaixo da primeira normalmente trazem a solução de verdade.

Como ler uma mensagem de erro

  • Leia da primeira linha para baixo. Quanto mais abaixo, mais são as tripas da ferramenta; a causa costuma estar no topo.
  • Se há arquivo e número de linha, comece ali — não o quadro superior da pilha, e sim a linha mais alta que nomeie um arquivo seu.
  • Pesquise a mensagem literal, mas tire primeiro seus caminhos e nomes de variáveis: é isso que impede a busca de casar.
  • A mesma condição é redigida de formas diferentes conforme a versão. Se os resultados não batem, some o número da versão.
  • Antes de colar uma correção, veja o que ela descarta. Algumas não dá para desfazer.

Perguntas frequentes

Q. O que significa “fatal: bad object 8a3f21c”?

O nome que você deu não resolve para nada que o git consiga ler: ou o objeto não está neste repositório, ou está e é danificado. Acontece com um hash copiado de outro clone ou de um clone raso, com um hash truncado curto demais, ou com um objeto realmente corrompido depois de um problema de disco. O git fsck --full relata objetos ausentes e quebrados só lendo, e um hash de outra pessoa precisa de um git fetch antes de o objeto existir aqui. Se o fsck relatar corrupção, clonar de novo é mais rápido e certo que reparar — copie antes os seus arquivos não commitados para um lugar seguro.

Q. Como corrigir?

git fsck --full — antes de rodar, veja acima o que este comando descarta.

Q. Qual ferramenta imprime isso?

git. Fica em Git e a mensagem tem 4 palavras.

Erros próximos