Versión corta: significa lo que dice, y si lo dejas terminar, todo estará bien.
Durante la mayoría de las operaciones que potencialmente pueden aumentar el número de objetos sueltos (desempaquetados) en el repositorio (incluidos los empujes), Git invoca git gc --auto
. Si hay suficientes objetos sueltos (por defecto, al menos 6700), invocará git repack -d -l
para empacarlos. Si hay demasiados paquetes separados, también los volverá a empaquetar en uno.
Un paquete es un archivo único comprimido en delta, que contiene una gran cantidad de objetos. Es más eficiente almacenar objetos en paquetes, pero lleva tiempo empaquetar (comprimir) los objetos, por lo que Git inicialmente crea objetos sueltos, luego los empaca en lotes de vez en cuando, mediante la invocación automática de git gc --auto
.
Si dejas que Git termine de reempacar, esto no volverá a suceder por un tiempo. De hecho, puede llevar un tiempo, especialmente si tiene muchos objetos binarios grandes, pero si se dispara, es una señal de que probablemente reducirá drásticamente la cantidad de espacio en disco que ocupa el repositorio. Si realmente no desea que suceda, puede cambiar el parámetro de configuración gc.auto
. Si lo aumenta a algo mucho más grande que 6700, sucederá con menos frecuencia, pero tomará más tiempo cuando lo haga. Si lo disminuye, aún tendrá que hacer su reempaque actual, pero posteriormente sucederá con más frecuencia y terminará más rápidamente. Si lo configura en 0, deshabilitará el reempaque automático.
Consulte man git-gc
(debajo --auto
) y man git-config
(debajo gc.auto
) para obtener más información.