
Julio César Zaravia Paredes
PreguntaFreddy habla del Garbage Collector, que hasta donde sé permite liberar espacio en memoria separado previamente por un programa para sus operaciones.
Esto hace ver que el pase de un archivo a Staging es solamente un tema de memoría RAM, sin embargo a nivel de git, cuando existe una versión almacenada y una versión modificada esto es físico, es decir existe una copia física en el disco duro de la versión inicial del archivo dentro del repo .git (en alguna sección donde se guarden las copias en staging), y existe una versión modificada que se encuentra físicamente en la ruta original.
¿Cómo puede ser posible que el GC o apagar la PC o etc, haga que este archivo salga de la fase de staging? Quizá estoy entendiendo mal, si alguien sabe del tema le agradecería un comentario, actualmente estoy trabajando un proyecto personal que utiliza esta funcionalidad y me sería muy útil.
Volveré a revisar por mi cuenta, quizá esté equivocado, y lo compartiré aquí. Slds!

Patricio Villarroel Durán
Hola Julio
¡Un gusto ayudar! Git gc hace algunas cosas más que solo borrar commits perdidos, pero si se encarga de la limpieza, sin duda. Aquí puedes leer una muy completa guía al respecto.

Julio César Zaravia Paredes
Hola @PatoVillarroel, no veo como responder a tu comentario, quería agradecerte por tu respuesta, entiendo el uso del GC como herramienta dentro de Git, no sabía de esta funcionalidad y me parece muy interesante, lo revisaré.

Patricio Villarroel Durán
Hola Julio
Un garbage collector efectivamente permite ir liberando la memoria que se asigna dinámicamente y luego ya no se usa, pero en git no funciona así en absoluto. Mantiene la idea pero no tiene nada que ver con el uso de memoria ram.
El garbage collector
git gc
git reset
git rebase
Así que si tienes archivos en staging y apagas el computador, al encenderlo, los archivos seguirán en staging. Para sacarlos de staging debes usar
git restore --staged .