Introdução
O Git flow é uma proposta de fluxo de trabalho com o git para simplificar a gestao de branches, merges e conflitos.
Preparação inicial
Basicamente se dá com a clone do repositório, e a utilização inicial da branch master, a partir da qual se originará as demais branches.
Nomenclatura de branches
Ao iniciar desenvolvimento da atividade é importante identificar o tipo da mesma, pois isso influenciará na nomenclatura.
- DEVE-SE usar feature/<nome-da-funcionalidade>, para qualquer nova funcionalidade que esteja sendo incluída no projeto. A branch será mantida até ser aprovada no PR e consequentemente mergeada na master.
- DEVE-SE usar hotfix/<nome-do-fix>, para qualquer nova melhoria ou correção, a branch será mantida até ser aprovada no PR e consequentemente mergeada na master.
- PODE-SE usar release/<nome-da-release>, para agrupar um conjunto de features e hotfixes que simplifique uma entrega. A branch será mantida até ser aprovada no PR e consequentemente mergeada na master.
Coding flow
O objetivo do coding flow é criar uma proposta de fluxo de trabalho, que permita iterações assíncronas durante o processo de desenvolvimento, revisão e validação do que está sendo desenvolvido.
- Checkout da branch
- Verificar se há atualizações da master para realizar $ git rebasese necessário.
- Implementação/codificação/ajustes
- Realizar $ git commit. O objetivo é simplificar a comparação das modificações possibilitando rapida reversão caso seja necessário.
- Realizar os testes unitários,
- Caso o mesmo não seja aprovado voltar ao passo 1.
- Fazer o push da branch para o server remoto
- Atualizar Pull Request para a branch
- Caso não exista, criar Pull Request
- Acompanhar a verificação de qualidade
- Se a branch é mergeável
- Se não está quebrando o lint
- Se os testes estao passando
- Se foi aprovado no SonarQube
- Pull Request será finalizada, realizando o merge na branch alvo.