tipos tag sirve repositorio remove qué practices para nos existen etiquetas cuando crear creamos best git

tag - Cómo diagnosticar y corregir git fatal: no se puede leer el árbol



qué tipos de etiquetas existen en git (4)

Estoy usando git para administrar archivos en un proyecto y sigo encontrándome con este problema.

Cuando ejecuto el git status obtengo el mensaje

fatal: unable to read tree e2d920161d41631066945a3cbcd1b043de919570

Según lo entiendo, debería verificar la salida de git fsck , y recibo

broken link from tree e09a42f248afff64336fbbec2523df97c26451ac to tree e2d920161d41631066945a3cbcd1b043de919570 broken link from tree e09a42f248afff64336fbbec2523df97c26451ac to tree 9b0dd389bd7f9e8d257395d57e0881b7957f9698 broken link from tree e09a42f248afff64336fbbec2523df97c26451ac to tree 9e288a4ad60d63f342dfd18237980674426aa725 broken link from tree e09a42f248afff64336fbbec2523df97c26451ac to tree 2a04647337089f554fab8c49cfd37149e5f4fc9f broken link from tree e09a42f248afff64336fbbec2523df97c26451ac to tree ea16658b45ce961adc3c3f519b0e8d9672918ca8

junto con una gran cantidad de mensajes missing blob .

Siguiendo varios recursos (p. Ej., Git: enlaces rotos, árboles desaparecidos y colgantes ) simplemente he vuelto a clonar el proyecto de github y comencé de nuevo.

Una vez que he vuelto a clonar el proyecto, todo está bien para algunos commit , y luego el problema surge nuevamente. Volver a clonar cada vez no parece ser óptimo, y parece ir en contra de la idea de usar git , y me gustaría tratar de entender lo que está sucediendo. ¿Cómo puedo diagnosticar y solucionar este problema?


Algo que simplemente funcionó para mí fue esconder mis cambios, hacer un jalón, y luego hacer estallar los cambios de la pila de alijo. Mi corrupción podría haber sido bastante superficial, por lo que probablemente no funcione para todos, pero vale la pena intentarlo.

Aquí está la salida que obtuve cuando escondí:

work@home ~/code/project $ git stash fatal: unable to read tree 5fd5f4d0425b42e5b478773fa643dd6fd4918188 fatal: unable to read tree 5fd5f4d0425b42e5b478773fa643dd6fd4918188 Saved working directory and index state WIP on master: d93430c Generic commit msg. HEAD is now at d93430c An older generic message.

Después de eso tiré y luego salté y se limpió. Nuevamente, YMMV.


Comenzaría con un clon nuevo y luego ejecutaría git fsck en el clon sin cambios git fsck cambios. Me pregunto (como arriba) si su clon inicial está dañado, pero de una manera que le permite realizar algunas operaciones antes de orfanar los árboles.


Esto puede o no ser el problema planteado originalmente aquí, pero tenga en cuenta que verá un error "fatal: no se puede leer el árbol" de git si la cuenta de usuario en la que se ejecuta el comando git ya no puede leer todos los archivos marcados de su repositorio debido a un problema de propiedad / permisos.

Por lo tanto, en muchos casos, lo primero que debe verificar es que tenga la propiedad y los permisos establecidos correctamente en los archivos en su árbol de trabajo, ya que eso puede solucionar el problema. :)


Siguiendo mi recomendación anterior , todo se reduce a poder encontrar un repositorio que contenga realmente los elementos faltantes (aquí los árboles completos).
Esto es lo que se muestra en " Cómo arreglar el repositorio de git dañado ".

Pero si un clon completo no resuelve el problema, entonces puede ser:

Actualice julio de 2016, y próximamente se lanzará Git 2.10, ahora tiene:

git fsck --name-objects

Consulte " Cómo solucionar el error del enlace error de git de un árbol a otro " para obtener más información.