Git comprime i dati in pacchetti. Quindi, anche se in teoria git è un meccanismo di memorizzazione per interi oggetti, in pratica gli oggetti sono compressi a delta.
Puoi saperne di più su questi pacchetti da ad es. link
Il meccanismo di compressione trova i file che hanno nomi simili nelle diverse versioni e hanno una dimensione ragionevolmente vicina l'una all'altra. Si conclude quindi che questi file sono un buon candidato per provare la compressione delta e la compressione delta viene utilizzata se ha un guadagno misurabile. Se cambi l'intero contenuto di un file, git può concludere che la compressione delta non è vantaggiosa, e quindi il file è memorizzato così com'è. Questo differisce significativamente dai sistemi di controllo delle versioni precedenti come CVS (e forse SVN?) Che usano sempre la compressione delta dove la versione più recente di un file è archiviata così com'è e le versioni precedenti sono solo la versione più recente meno delta.
Il meccanismo di compressione delta in git è in grado di utilizzare tutti i core della CPU nel sistema tramite il multithreading.