Eu, nossa equipe, usamos uma abordagem do gitflow para manter nossa base de código. Mas há um caso em que lutamos.
Estamos no seguinte caso, temos dois ramos de características (feat / A, feat / B) que foram criados a partir de develop
.
O feat / A está acabado, então nós o mesclamos no desenvolvimento, bem, esse recurso agora vive em develop
, ele está esperando para ser testado para ser mesclado em master
.
E agora, há uma emergência para colocar talento / B em mestre porque é muito importante (um erro de comunicação, um cliente espera que ele já esteja presente, seja qual for ..). Neste caso, o talento / B não está 100% pronto (é por isso que não é mesclado em develop
por enquanto), mas a versão atual está estável e pronta para ser usada.
Então, como você lidaria com isso?
Não podemos contar com o gitflow, pois ele dirá o seguinte:
- Mesclar proeza / B em
develop
- Mesclar
develop
em master
(não mencionei release/X
, mas o princípio é o mesmo)
Mas ... lembre-se, develop
contém o talento A que não está pronto para ser lançado no prod. Portanto, não podemos mesclar develop
em master
.
A solução que tenho é a seguinte:
- Mesclar proeza / B em
develop
- Mesclar proeza / B em
master
Assim, o mestre não contém o talento A.
Essa solução funciona, mas não parece ser uma prática escalável em grandes projetos (dezenas de desenvolvedores trabalhando em um mesmo repositório). Agora estamos 3-4 dev para que possamos nos comunicar rapidamente uns com os outros, mas em uma grande equipe não é realmente possível ..