Git Flow
Introdução
O Git Flow é um modelo de ramificação para o Git, criado por Vincent Driessen, que oferece uma estratégia robusta para gerenciar as branches (ramificações) de um projeto. Este modelo facilita o desenvolvimento paralelo, a liberação de versões e a manutenção de múltiplas versões de produção.
Estrutura do Git Flow
O Git Flow define um conjunto de branches e regras para gerenciar e interagir com elas. As principais branches são:
- Main: Contém o histórico oficial do projeto. As releases são extraídas desta branch.
- Develop: Serve como a branch de integração para as features. O código nesta branch deve estar pronto para ser liberado na próxima release.
Branches de Suporte
- Feature: Usada para desenvolver novas funcionalidades para o próximo release. São criadas a partir da
develop
e, uma vez concluídas, são fundidas de volta nadevelop
. - Release: Suporta a preparação de uma nova release de produção. Permite pequenas correções e testes. É criada a partir da
develop
e fundida emmain
edevelop
. - Hotfix: Usada para corrigir rapidamente bugs em produção. Criada a partir da
main
e, uma vez concluída, é fundida emmain
edevelop
.
Fluxo de Trabalho do Git Flow
Para iniciar o fluxo de desenvolvimento das atividades, é fundamental entender os conceitos de issue e pull request.
-
Issue: É a forma de descrever os problemas e tarefas que serão abordados durante a sprint, incluindo eventuais problemas no código. As issues ajudam a organizar e priorizar o trabalho, garantindo que todos saibam o que precisa ser feito.
-
Pull Request: É o método utilizado para gerenciar e integrar branches do código sem interferir no trabalho de outros desenvolvedores. Os pull requests permitem revisar e discutir mudanças antes de mesclá-las, facilitando o desenvolvimento paralelo e mantendo a qualidade do código.