Git flow vs trunk-based development: o que funciona para times pequenos?
Git flow foi o padrão por anos. Trunk-based development ganhou força com DevOps e CI/CD. Para um time de 3 a 10 pessoas, qual faz mais sentido?
Git flow
Branches de feature, develop, release, hotfix e main. Processo bem definido, fácil de entender para novatos.
Onde funciona: releases com data definida, código que precisa de QA antes de produção, times que não têm CI/CD maduro.
Onde quebra: merges longos, conflitos frequentes quando features ficam em branches por semanas, velocity real mais baixo do que parece.
Trunk-based development
Todo mundo commita direto na main (ou branches de vida curta, horas não dias). Deploy frequente, feature flags para esconder trabalho em progresso.
Onde funciona: times com CI/CD robusto, cultura de testes, deploys automatizados para produção.
Onde quebra: sem infraestrutura de testes, você vai quebrar produção. Feature flags mal gerenciadas viram dívida técnica.
O que eu uso
Para projetos solo ou times pequenos: branches de vida curta (1-3 dias) com merge para main. Sem release branch, sem develop separado. Deploy contínuo.
O Git flow completo para um time de 3 pessoas é overhead sem benefício proporcional.
A pergunta real
O seu processo de branching foi uma decisão consciente ou é o que veio com o projeto?