mac - ¿Cuáles son los "objetos sueltos" a los que se refiere la GUI de Git?
git repository (2)
Cuando abro la GUI de Git , aparece un mensaje emergente que hace referencia a loose objects
. Lo hice git gc
y eso eliminó el mensaje.
¿Qué son loose objects
y cómo podría evitar que vuelva a ocurrir?
El libro de Git lo explica bastante bien: https://git-scm.com/book/en/v2/Git-Internals-Packfiles
Los objetos sueltos son el formato más simple. Es simplemente la información comprimida almacenada en un solo archivo en el disco. Cada objeto escrito en un archivo separado.
Un objeto (blobs, trees y commits) con SHA dice: 810cae53e0f622d6804f063c04a83dbc3a11b7ca se almacenará en
.git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca
(la división en los dos primeros caracteres para mejorar el rendimiento del sistema de archivos, ya que ahora no todos los objetos están almacenados en el mismo directorio)
Los objetos almacenados como se mencionan anteriormente se denominan objetos sueltos.
Cuando comienzas con tu repositorio, en su mayoría tienes objetos sueltos. A medida que el número aumenta, se vuelve ineficiente y se almacenan en un archivo de paquete. Dichos objetos se llaman objetos empaquetados.
git gc
es lo que se ejecuta para empacar objetos (normalmente se eliminan objetos sueltos que no son necesarios y algunas semanas de antigüedad) y con la --prune=<date>
puede forzar la eliminación de objetos sueltos que ya no son necesarios. . El objeto de confirmación anterior ya no es necesario).