Git refs / remotes / origin / master no apunta a un object válido

Después de la última fusión con la twig principal de mi repository de Git, he perdido la capacidad de clonar el repository.

 Clonación en repository de testing ...
 remoto: Contando objects: 126084, hecho.
 remoto: Compresión de objects: 100% (28327/28327), hecho.
 Recepción de objects: 100% (126084/126084), 132.63 MiB |  29.30 MiB / s, hecho.
 remoto: Total 126084 (delta 96101), reutilizado 126078 (delta 96095)
 Resolución de deltas: 100% (96101/96101), hecho.
 error: ¡refs / remotes / origin / master no apunta a un object válido!
 error: tratando de escribir ref refs / heads / master con 
        object no-resistente 951aca8051823b2f202d30c9cb05401ef17618c6

Fisheye, una herramienta de alojamiento de repository, informa:

 No se puede recuperar desde el repository remoto:
 /var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git
 error: no se puede encontrar 0d998c99b6d01e8aabca72b1934802acf90b8fc9,
 fatal: no se encontró el object 0d998c99b6d01e8aabca72b1934802acf90b8fc9

La última confirmación en el repository en la twig maestra es:

 commit 0d998c99b6d01e8aabca72b1934802acf90b8fc9
 Fusionar: a6ea4b3 1f373a9
 Fecha: vie 14 de diciembre 13:57:24 2012 +0200

 Merge branch 'new_error_code'

Yo he tratado:

cd /var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git git gc git fsck --full git reflog expire --expire=0 --all git update-ref git gc --aggressive 

Las siguientes preguntas no ayudaron a mi caso:

  • ¿Cómo recuperar objects Git dañados por fallas en el disco duro?
  • Error fatal después de la fusión automática de GitHub
  • Listado y eliminación de confirmaciones de Git que no están bajo ninguna twig (¿colgando?)

 git gc git fsck --full git reflog expire --expire=0 --all git update-ref -d 0d998c99b6d01e8aabca72b1934802acf90b8fc9 git gc --aggressive git remote update --prune 

¡Y funcionó!

Por lo general, puedes hacer:

 git reflog master 

Esto le dará una list de las últimas posiciones conocidas que el maestro ha señalado.

Una vez que sepa esto, puede crear una twig temporal a una versión anterior de master, es decir,

 git branch temp master@{1} 

Luego revise la temperatura y vea si está en el order correcto. Si no ve nada allí, entonces los commands que realizó anteriormente (eliminar el reflog, eliminar compromisos comprometidos, etc.) probablemente borraron todas las forms de recuperación.