Neste fluxo de trabalho, utilizaremos as seguintes branches principais:
main
: Branch de produção, contendo o código estável.dev
: Branch de desenvolvimento, onde todas as novas features são integradas.feat/
: Branches para desenvolvimento de novas features.fix/
: Branches para correções de bugs.
- Features:
feat/nome-da-feature
- Hotfixes:
fix/nome-do-fix
- Commits Diretos: Commits diretos para
main
edev
são proibidos. Todo código deve passar por um PR. - Pull Requests (PRs): Todo código deve ser revisado por pelo menos um outro desenvolvedor antes de ser mesclado.
- Revisão de Código: É obrigatório que todos os PRs sejam aprovados e que os testes passem antes do merge.
- Status de Build: Os PRs só podem ser mesclados se todos os checks de build e testes estiverem “verdes”.
- Proteção de Branches: As branches
main
edev
são protegidas e só podem receber merges através de PRs aprovados.
-
Certifique-se de estar na branch
dev
e atualizado:git checkout dev git pull origin dev
-
Crie uma nova branch para a feature:
git checkout -b feat/nome-da-feature
-
Desenvolva a feature, commitando suas mudanças localmente:
git add . git commit -m "Descrição das mudanças"
-
Quando finalizar, envie sua branch para o repositório remoto:
git push origin feat/nome-da-feature
-
Crie um PR para mesclar a branch
feat/nome-da-feature
nadev
.
- Após a criação do PR, a equipe de revisão será notificada.
- O PR deve ser revisado e aprovado por pelo menos um revisor.
- O PR deve passar por todos os checks de CI/CD.
- Após a aprovação, o PR pode ser mesclado na
dev
.
- Quando uma feature ou conjunto de features na branch
dev
estiver pronto para produção, crie um PR para mesclardev
namain
. - A branch
main
deve ser protegida com as mesmas regras de PRs. - O merge para a
main
deve ser feito através de um PR aprovado.
-
Certifique-se de estar na branch
main
e atualizado:git checkout main git pull origin main
-
Crie uma nova branch para o hotfix:
git checkout -b fix/nome-do-fix
-
Aplique a correção, commitando suas mudanças:
git add . git commit -m "Descrição da correção"
-
Envie sua branch para o repositório remoto:
git push origin fix/nome-do-fix
-
Crie um PR para mesclar a branch
fix/nome-do-fix
namain
. -
Após o merge na
main
, mescle também nadev
para manter a paridade:git checkout dev git pull origin dev git merge main git push origin dev
- Vá até o repositório no GitHub e acesse Settings > Branches.
- Adicione regras de proteção para as branches
main
edev
. - Ative as seguintes configurações:
- Require a pull request before merging
- Require status checks to pass before merging
- Include administrators (opcional)
- Restrict who can push to matching branches
- Defina um template de PR para garantir que todos os PRs contenham as informações necessárias (descrição da mudança, como testar, etc.).
- Use GitHub Actions para rodar linters, testes, e outras verificações automáticas nos PRs.
-
Criando a feature:
git checkout dev git pull origin dev git checkout -b feat/novo-layout # Desenvolvimento... git add . git commit -m "Implementa novo layout na página de login" git push origin feat/novo-layout
-
Criando um PR no GitHub:
- Crie um PR para mesclar
feat/novo-layout
emdev
. - Aguarde a revisão e aprovação.
- Após aprovação e sucesso dos testes, mescle o PR.
- Crie um PR para mesclar
-
Criando o hotfix:
git checkout main git pull origin main git checkout -b fix/corrige-bug-login # Correção... git add . git commit -m "Corrige bug de autenticação no login" git push origin fix/corrige-bug-login
-
Mesclando o hotfix:
- Crie um PR para mesclar
fix/corrige-bug-login
emmain
. - Após a aprovação, mescle o PR e depois mescle
main
emdev
para manter a paridade.
- Crie um PR para mesclar
Este guia define um processo estruturado e controlado de desenvolvimento usando GitFlow adaptado para incorporar controle de PRs e proteger branches críticas. Seguindo este fluxo de trabalho, sua equipe poderá colaborar de maneira eficaz e garantir que o código em produção seja sempre de alta qualidade.