¿Git gc se ejecuta a intervalos determinísticos?

He estado leyendo sobre git, y tengo una pregunta muy particular que estoy luchando por responder.

¿Cuándo se ejecuta git gc autónoma?

He estado escuchando a través de la vid de varios foros que ocurre por defecto en un push o un fetch / pull, pero no puedo encontrar ninguna fuente que verifique esto. Incluso la documentation en sí misma solo consigue esto específico (el énfasis es mío):

Algunos commands de git pueden ejecutar automáticamente git gc; vea el indicador –auto a continuación para get más detalles

y el indicador --auto especifica

Algunos commands de git ejecutan git gc –auto después de realizar operaciones que podrían crear muchos objects sueltos.

Quiero poder decir de manera determinista:

"Git no se habrá limpiado hasta que se ejecute uno de los siguientes commands: {mystery list here} . Al ejecutar uno de estos commands, si la cantidad de objects sueltos excede el valor de gc.auto , git comprimirá automáticamente los objects en un file de package ".

Actualmente esos son:

  • ha podido recuperar
  • unir
  • a.m
  • package de recepción

La list real se puede verificar haciendo una búsqueda de código .

También se puede ver que gc on receive se puede desactivar con receive.autogc , otros simplemente ejecutan el gc al final.