¡GIT "refs / heads / gh-pages no apunta a un object válido!"

P: ¿Cómo puedo resolver los siguientes errores?

error: refs/heads/gh-pages does not point to a valid object! error: refs/remotes/origin/gh-pages does not point to a valid object! error: refs/stash does not point to a valid object! 

git status y el git log funcionan bien

Origen

Eliminé el siguiente file para liberar espacio, ya que era un colosal de 2GB ya que asumí que era parte de un gran file de 2GB que había cometido y que había intentado eliminar con bfg . Supuse que este era el último rastro de eso.

 rm ./.git/objects/pack/pack-bec4156621c0ce105abeedad0878eedf59f10a31.pack 

Depuración

Usando $GIT_TRACE=1 git pull , obtengo el resultado a continuación, pero tengo dudas de hacer un cambio que pueda afectar el contenido real de mi repository.

 15:09:45.684046 git.c:344 trace: built-in: git 'pull' 15:09:45.684942 run-command.c:334 trace: run_command: 'fetch' '--update-head-ok' 15:09:45.685426 exec_cmd.c:189 trace: exec: 'git' 'fetch' '--update-head-ok' 15:09:45.687727 git.c:344 trace: built-in: git 'fetch' '--update-head-ok' error: refs/heads/gh-pages does not point to a valid object! error: refs/remotes/origin/gh-pages does not point to a valid object! error: refs/stash does not point to a valid object! 15:09:45.692615 run-command.c:334 trace: run_command: 'git-remote-https' 'origin' 'https://github.com/flipdazed/Hybrid-Monte-Carlo.git' error: refs/heads/gh-pages does not point to a valid object! error: refs/remotes/origin/gh-pages does not point to a valid object! error: refs/stash does not point to a valid object! 15:09:46.658813 run-command.c:334 trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet' 15:09:46.667707 run-command.c:334 trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' 15:09:46.668230 exec_cmd.c:189 trace: exec: 'git' 'rev-list' '--objects' '--stdin' '--not' '--all' 15:09:46.670683 git.c:344 trace: built-in: git 'rev-list' '--objects' '--stdin' '--not' '--all' error: refs/heads/gh-pages does not point to a valid object! error: refs/remotes/origin/gh-pages does not point to a valid object! error: refs/stash does not point to a valid object! error: refs/heads/gh-pages does not point to a valid object! error: refs/remotes/origin/gh-pages does not point to a valid object! error: refs/stash does not point to a valid object! 15:09:46.674636 run-command.c:334 trace: run_command: 'gc' '--auto' 15:09:46.675101 exec_cmd.c:189 trace: exec: 'git' 'gc' '--auto' 15:09:46.677382 git.c:344 trace: built-in: git 'gc' '--auto' There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull <remote> <branch> If you wish to set tracking information for this branch you can do so with: git branch --set-upstream-to=origin/<branch> master 

No debe eliminar ninguno de los files .pack, que empaquetan muchas de sus confirmaciones. Desde que se eliminó, ha perdido muchas de sus confirmaciones, incluida la que apunta a los puntos de refs/heads/gh-pages . Si ha empujado a todas sus references locales a otro repository, podría recuperarlas o hacer otro clon. Pero si no lo has hecho, tal vez necesites alguna herramienta para restaurar los datos eliminados de tu disco duro.

Por lo general, Git almacena objects sueltos (incluidos commit , tree , blob y annotated tag ) en .git/objects/ . Por ejemplo, si hay un compromiso cuyo sha1 es 1daa24d58e28ee48365d594e90ebb215ddd47809 , podría encontrarlo como .git/objects/1d/aa24d58e28ee48365d594e90ebb215ddd47809 . Para ahorrar aún más espacio, Git los empaqueta en .pack y .idx y los almacena en .git/objects/pack través de git gc que se ejecuta a mano o automáticamente.

Referencia: Git Internals