Cómo arreglar un object malo del tree git

Tengo una copy local de un repository que ya no tiene ningún control remoto asociado. Estoy tratando de llevar este repository a un nuevo control remoto, sin embargo cada vez que recibo este post:

error: Could not read 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790 fatal: bad tree object 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790 

Leí en preguntas similares aquí que una forma de solucionarlo es recuperar este object de otras copys del repository o hacer un restablecimiento completo. No puedo hacer ninguna de las dos ya que no tengo otra copy de este repository.

¿Hay alguna forma de eliminar simplemente este compromiso u otro tipo de solución que me permita llevar el repository al nuevo historial de mantenimiento remoto?

Para solucionar realmente el problema y no perder ningún dato (siempre que ese tree sea el único object que falta, cosa que dudo), podrías probar esto:

  1. checkout the parent commit of the commit con el tree concerniente
  2. testing git cat-file -p con el nombre del compromiso problemático para ver lo que dice el post de compromiso (con suerte te dirá qué cambió)
  3. ahora es posible que pueda determinar los cambios que se realizaron y, a partir de esto, es de esperar que se pueda inferir la estructura del directory.
  4. si 3 funcionaron, entonces puede crear su tree manualmente usando un editor de text y un compresor zlib. Las inputs en el file de salida serán otros objects de tree o blobs. Con suerte, la mayoría de los files y carpetas se comparten (no tienen cambios) entre las dos confirmaciones. Esto le permitirá reutilizar la mayoría de las inputs desde el tree object de la confirmación comprobada.

Simplemente cierre la aplicación con la que accede a git y reinicie. Trabajé para mí para xcode-iOS.

Tuve este problema Al reiniciar mi computadora, realmente se solucionó, así que pruébalo primero antes de hacer cualquier otra cosa. ¡O tal vez solo tuve suerte pero vale la pena intentarlo!

Tengo mi git repo en un directory que también está en la carpeta OneDrive en mi computadora. Si usa OneDrive en otra máquina, presione desde el repository en esa computadora y luego tire / empuje desde su propia máquina nuevamente.