¿Cómo manejar git gc fatal: referencias de objeto incorrecto/remotos/origen/error HEAD?

Resuelto Ryan asked hace 8 años • 0 respuestas

Hoy encontré esto al azar mientras intentaba ejecutar la recolección de basura de Git :

$ git gc
fatal: bad object refs/remotes/origin/HEAD
error: failed to run repack

¿Cómo trato con esto?

Ryan avatar May 11 '16 00:05 Ryan
Aceptado

No entiendo las ramificaciones de esto, pero como se sugiere en este hilo , cuando encontré esto simplemente lo hice.

$ mv .git/refs/remotes/origin/HEAD /tmp

(manteniéndolo a mano por si acaso) y luego

$ git gc

trabajó sin quejarse; No me he encontrado con ningún problema.

petrelharp avatar Jul 04 '2016 22:07 petrelharp

Después de ver la respuesta de Trenton, miré .git/refs/remotes/origin/HEADy vi que también apuntaba a una rama antigua que ahora está eliminada.

Pero en lugar de editar el archivo yo mismo, probé la solución de Ryan:

git remote set-head origin --auto

Automáticamente configuró el archivo en la nueva rama y git gcfuncionó bien después de eso.

WilQu avatar Apr 20 '2018 14:04 WilQu

El problema con el que me encontré (que es el mismo problema que @Stavarengo mencionó en este comentario anterior) es que la rama remota predeterminada ( developen mi caso) se había eliminado, pero todavía se hacía referencia a ella en .git/refs/remotes/origin/HEAD.

La apertura .git/refs/remotes/origin/HEADen mi editor mostró esto:

ref: refs/remotes/origin/develop

Lo edité cuidadosamente para que apuntara a mi nueva rama predeterminada y todo estuvo bien:

ref: refs/remotes/origin/master

La pista que me avisó fue que al ejecutar git prunese mostró este error:

> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD
Trenton avatar Sep 11 '2017 16:09 Trenton