¿"Git gc" también ejecuta "git repack"?

He desactivado la molesta funcionalidad de reempaquetado automático de git (supongo que la mayoría de los usuarios de git conocen el post de "reembalaje para un performance óptimo" cuando trabajan con git) y, en cambio, invoco "git gc" durante la noche con un cronjob.

Sin embargo, no estoy seguro si eso es suficiente y si también debería ejecutar "git repack" antes o después de "git gc".

Las páginas de manual de "git repack" y "git gc" no mencionan ninguna connection entre las dos, y la página de manual de "git repack" en realidad contiene esta frase:

En cambio, los objects sueltos inalcanzables se podarán según las reglas de caducidad normales con la siguiente invocación de git gc.

Esto me indicaría que "git gc" no es suficiente para todas las tareas de mantenimiento y también es necesario "volver a empaquetar git". ¿Es eso correcto y qué commands de limpieza se deben usar para git?

git repack solo vuelve a embalar los objects.

git gc vuelve a empaquetar y arroja los viejos objects inalcanzables.

Para verificar que puede hacer algo como find .git/objects antes y después de git gc : antes debería ver todos los objects nuevos como files separados. Después, debe haber solo un file grande del package.

Para más detalles, también puede echar un vistazo al código: en built-in / gc.c, se prepara y ejecuta el command reempaque.