Durante la garbage collection, git prende gli oggetti dalla tua directory .git/objects
, e li li raggruppa nel file pack in .git/objects/pack
. Durante questa fase, comprime anche i file e sfrutta la somiglianza tra i file per ridurne le dimensioni. In genere il file pack aumenta di dimensioni molto meno delle dimensioni degli oggetti che sono stati spostati in esso, poiché è in grado di eseguire ottimizzazioni tra file.
Una volta che questi oggetti si trovano nel file pack allora questi oggetti sono effettivamente nel tuo repository locale due volte, una volta come un oggetto e una volta nel file pack . La fase "rimozione degli oggetti duplicati", quindi rimuove questi duplicati dalla tua directory .git/objects
, e quindi la dimensione della directory viene ridotta.