Attualmente sto lavorando a un progetto con un team che sta utilizzando un flusso di lavoro git. È abbastanza semplice, il master dovrebbe essere in uno stato distribuibile e le diramazioni vengono utilizzate per creare funzionalità e hotfix. Ogni volta che abbiamo una funzionalità o un bugfix completati e testati, passiamo a masterizzare il prima possibile. L'idea è che i rami dovrebbero essere il più piccoli possibile per rendere più facile unirli nuovamente al master. Abbiamo una politica che qualsiasi codice inviato al ramo principale dovrebbe essere in uno stato distribuibile e superare i test.
Abbiamo una situazione in cui uno degli sviluppatori ha fatto un sacco di lavoro (vale la pena qualche mese) su un singolo ramo e questo ramo non è stato ancora unito al master. Ora ci sono alcune funzionalità separate e una serie di commit su questo ramo, in sostanza questo ramo avrebbe dovuto essere ricongiunto in alcune volte, ma finora non lo è stato. La maggior parte del codice è in buono stato con test unitari che potrebbero essere uniti in master ma le modifiche più recenti non dovrebbero essere siccome non sono completate e non sono testate.
Qual è il modo migliore per affrontare una situazione in cui una branca è molto lontana dalle altre? In che modo possiamo evitare che i rami ottengano un numero molto elevato di commit dal master in futuro?