Modello di ramificazione per la distribuzione flessibile delle funzionalità (git)

1

Supponiamo di avere 2 funzioni da consegnare ( A e B ). Ho due rami principali ( develop e master ) per staging e production server e 2 rami funzione ( features/a e features/b ). Quando una funzione è pronta, la unisco al ramo develop per il test. Supponiamo che non ci siano bug nella feature A ma ci sono alcuni bug nella feature B , quindi non posso unire develop a master poiché feature B richiede alcune correzioni. Ma ho bisogno di fornire funzionalità che sono pronte ( A in questo caso), quindi questo approccio non funziona qui. Quali altri approcci posso provare? Non riesco a cambiare ramo per testare il server perché ogni funzionalità può modificare lo schema del database e non posso sempre annullare le modifiche dello schema. Inoltre, non riesco a ricreare il database ogni volta perché perdo tutti i dati dei test aggiunti manualmente dai tester.

    
posta Random 06.06.2017 - 20:59
fonte

1 risposta

2

Se non ci sono dipendenze tra le funzionalità sviluppate puoi usare git cherry-pick per unire il commit (s) di un ramo funzionale al ramo master finale.

Tuttavia, dovresti prendere in considerazione l'introduzione di rami di rilascio per disaccoppiare il ramo di sviluppo dal ramo master per evitare qualsiasi commit errato o spiacevole nel ramo master finale.

Quindi il flusso di lavoro sarebbe, sviluppando in feature branch, unire al ramo di sviluppo, verificando, se ok, unire per rilasciare branch, se non okay, correggere su feature branch. Infine, unisci dal ramo di rilascio al ramo principale.

Un ramo di rilascio è utile anche quando sono disponibili alcune nuove funzionalità che non fanno parte della versione corrente ma fanno parte della prossima versione. Quindi hai un ramo di rilascio per la versione corrente e uno per la prossima versione.

    
risposta data 07.06.2017 - 00:33
fonte