Rendere diversi piccoli commit piuttosto che uno grosso non previene magicamente i conflitti, ma di solito li rende meno frequenti e più facili da gestire.
Se commetti e spingi molte piccole modifiche per diventare master, allora è più difficile che sorgano dei conflitti, poiché meno codice sta cambiando tra i commit e gli altri sviluppatori vedranno alcune delle tue modifiche prima che inizino a fare il loro proprio.
Se hai un ramo di funzionalità suddiviso in un sacco di piccoli commit quando si uniscono, quindi l'unione viene eseguita un commit alla volta, quindi se ci sono molti conflitti, devi solo risolvere il valore di un commit di conflitti alla volta, che di solito è molto più facile che risolverli tutti in una volta.
Il comando git merge
non esegue alcun commit, ad eccezione di un singolo "merge commit" se necessario. Non dividerà retroattivamente un commit esistente in diversi commit più piccoli o qualcosa di simile (non credo che ci sia un modo semplice per farlo in git, o qualsiasi altro VCS).