Packfiles e garbage collection
Quando você trabalha com Git, cada commit, árvore e blob é inicialmente armazenado como um objeto solto (loose object) — um arquivo individual comprimido com zlib, salvo em .git/objects/XX/YYYYYY.... Esse formato é simples e direto, mas extremamente ineficiente para repositórios grandes. Um projeto com milhares de commits pode gerar dezenas de milhares de arquivos pequenos, desperdiçando espaço em disco (cada arquivo ocupa pelo menos um bloco do sistema de arquivos) e tornando operações como clo