Non vedo il problema qui.
Lo hai già ogni volta con il tuo ramo master
, che continua a cambiare mentre le funzionalità vengono sviluppate e quindi unite.
Quindi, nel tuo esempio concreto, devi prima creare il ramo feature_xxx_backend
e sviluppare le modifiche del backend. Al termine, il ramo deve essere esaminato e verrà unito in master
una volta completata la revisione.
Quindi, avvia semplicemente un altro ramo, feature_yyy_frontend
. Probabilmente vorrai diramarti direttamente da feature_xxx_backend
, in modo che tu abbia già quelle modifiche nel tuo branc. quindi semplicemente sviluppa la funzione di frontend asif il ramo erano master
.
Quando il ramo feature_xxx_backend
cambia, ad es. perché ci sono cose che emergono durante la revisione che devono essere indirizzate, semplicemente fai queste modifiche e uniscile nel ramo feature_yyy_frontend
. Quindi continua sul ramo di frontend.
Una volta completata la revisione del ramo back-end, viene unita in master
. A questo punto, sarebbe opportuno rebase il ramo feature_yyy_frontend
su master
, in modo che i revisori debbano solo rivedere le nuove modifiche che questo ramo contribuisce a master
, e non è necessario riesaminare le modifiche apportate per il back-end (che sono già state approvate).
Questo può essere fatto anche quando hai due, tre o più rami dipendenti. Se si dispone di due diramazioni da cui si dipende, è sufficiente creare un ramo derivato in cui entrambe le funzioni sono unite. Filiale da lì, sviluppare la terza funzione, unire entrambi i rami delle caratteristiche lungo il percorso quando ognuno di questi cambia. Quando entrambe le funzioni sono state completate e integrate nel ramo derivato, rebase su quello, o se vengono unite in master, rebase su master.
Rebasing (come suggerito sopra) è davvero potente e aiuta a mantenere un registro pulito delle modifiche, rendendo le recensioni molto più semplici.