I "molti piccoli commit" useranno un po 'più di spazio, ma la differenza probabilmente non vale la pena pagare il prezzo della cronologia persa .
L'effetto sul file stesso dipenderà da quante modifiche non sono state modificate in seguito. Ad esempio, se un commit successivo tocca linee che anche un commit precedente ha toccato, lo stato intermedio di quelle linee non sarebbe visibile nella cronologia con un grosso commit, e quindi non ci sarebbe alcun oggetto nel file pack per rappresentarli.
Non riesco a immaginare che il numero di commit su un ramo riduca o aumenti la complessità della fusione; ma non posso parlare con autorità su questo dato che non ho esaminato esattamente come viene eseguita la fusione tipica da ricorsiva. La mia comprensione è che è equivalente a una diff3 dall'ultimo punto in cui sono stati uniti (o divisi). In quel caso, un grosso commit non sarebbe più o meno efficiente di molti piccoli commit.
C'è un altro aspetto da considerare, a seconda dei tempi. Se stai lavorando su un ramo e unisci regolarmente il ramo upstream tra i tuoi commit, molti piccoli commit genereranno meno conflitti perché manterrai una parità migliore con il ramo upstream, e quindi scarterai di meno. Ciò causerà certamente meno problemi quando è il momento di fondersi.
La raccolta dei dati inutili non viene in alcun modo influenzata, poiché in entrambi i casi, non vi sono commit penzolanti o oggetti sciolti in entrambi i metodi.
Tutto sommato, tuttavia, i file pack sono in genere abbastanza efficienti quando si ha a che fare con il testo che il vantaggio di poter visualizzare una cronologia completa e non adulterata spesso supera il costo dello spazio aggiuntivo necessario.
+1: questa è una domanda importante per coloro che devono operare in una revisione aziendale prima di eseguire un'operazione di stile che tende a rallentare il ciclo di commit. Può dipendere dalla misura della "grandezza" e dallo stile di cambiamento. Direi che il limite di una mezza dozzina di conflitti di unione di base, o una modifica funzionale, come un probabile piccolo limite <->. –