¿Cuáles son los "objetos sueltos" a los que se refiere la GUI de Git?
Cuando abro el Git GUI, recibo un mensaje emergente que se refiere a loose objects
. Lo hice git gc
y eso eliminó el mensaje.
¿Qué son loose objects
y cómo podría evitar que esto vuelva a ocurrir?
2 answers
Un objeto (blobs, trees y commits) con SHA say - 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 se almacenan en el mismo directorio)
Los objetos almacenados como los anteriores se denominan objetos sueltos.
Cuando inicias con tu repositorio, en su mayoría tienes objetos sueltos. A medida que el número va alto, se vuelve ineficiente y se almacenan en un paquete de archivo. Tales objetos se llaman objetos empaquetados.
git gc
Es lo que ejecuta para empaquetar objetos (Generalmente los objetos sueltos que no son necesarios y que tienen pocas semanas de antigüedad también se eliminan y con la opción --prune=<date>
puede forzar la eliminación de objetos sueltos que ya no son necesarios. Como cuando modificas un commit. El viejo objeto commit ya no es necesario. )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-27 18:38:32
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. Son simplemente los datos comprimidos almacenado en un solo archivo en el disco. Cada objeto escrito en un archivo separado.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-04 23:09:12