Sono un membro di un piccolo team che fa parte di un team più ampio di sviluppatori che lavorano con Git. Noi (il team più grande) abbiamo un ramo principale in un archivio centrale nel quale impegniamo il nostro lavoro per la prossima versione (chiamiamolo 1.0). Il team più piccolo è stato incaricato di sviluppare una funzione (aggiornando una esistente, in realtà) che non sarà disponibile nella versione 1.0, ma in una versione successiva (1.1). Mi chiedo come gestire lo sviluppo di questa funzionalità in Git. Ho esaminato diversi flussi di lavoro di Git ma non ne ho trovato uno che si adatti davvero.
In primo luogo, stiamo lavorando a questa funzione come una squadra, quindi ho pensato che sarebbe stato opportuno mantenere un ramo di funzionalità remoto nel repository centrale a cui ci spingeremo tutti e quindi unirmi con il ramo principale quando la funzione è fatta. Ma il rilascio di 1.0 potrebbe richiedere alcuni mesi e ciò significa che saremo isolati dal ramo principale per un lungo periodo, il che probabilmente renderebbe molto difficile l'integrazione nel main. Idealmente, vorrei spostare i cambiamenti da main al nostro branch di funzionalità giornaliere / settimanali (in modo da affrontare i conflitti all'inizio e non in una volta dopo diversi mesi) ma ho letto che non è consigliato in Git (a mio avviso, fusione dalla parte principale a un ramo di funzionalità o la ridefinizione di un ramo pubblico è sconsigliato.
Ho visto una domanda simile ma la risposta accettata dice semplicemente di non funzionare in questo modo. Poiché non sono io a decidere le nostre versioni, questa non è una soluzione che funziona per me. In relazione a questo, anche se penso che il codice sia stabile, non posso assegnarlo al main, perché il QA non ha il tempo di controllare la funzionalità per la versione 1.0 e le modifiche al codice potrebbero introdurre un bug. Conosco i test di regressione automatica e l'integrazione continua e sto spingendo strong per entrambi, ma al momento queste cose non sono possibili.
Qual è il modo migliore per gestirlo?