3.5.1.1 Outros Workflows Git: Git Flow e GitLab Flow
🚀 3.8 Outros Workflows Git: Git Flow e GitLab Flow
🌱 Git Flow – Ideal para projetos grandes e organizados
🧠 O que é o Git Flow? É um modelo de trabalho com mais controle, ideal para projetos com muitos desenvolvedores, versões e etapas claras (ex: produção, teste, desenvolvimento).
🔁 Branches no Git Flow
main
Código estável e pronto para produção
develop
Onde os desenvolvedores trabalham juntos
feature/
Novas funcionalidades em desenvolvimento
release/
Preparar uma versão para produção
hotfix/
Corrigir erro urgente na produção
🗺️ Como funciona o fluxo?
main ←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
↑ ↑
(merge) (hotfix)
↑ ↑
release ←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
↑
(merge)
↑
develop ←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
↑
feature/minha-nova-funcionalidade
🛠️ Passo a passo (exemplo prático)
1. Comece no develop:
git checkout develop
2. Crie uma feature:
git checkout -b feature/cadastro-usuario
Trabalhe na funcionalidade normalmente, depois:
git add .
git commit -m "Feature: cadastro de usuário"
git checkout develop
git merge feature/cadastro-usuario
3. Preparar release:
git checkout -b release/v1.0.0
Testes, ajustes finais...
git checkout main
git merge release/v1.0.0
git tag v1.0.0
4. Voltar ao ciclo:
git checkout develop
5. Corrigir erro urgente:
git checkout -b hotfix/corrige-bug
Corrija, depois:
git commit -m "Hotfix: corrige bug crítico"
git checkout main
git merge hotfix/corrige-bug
git checkout develop
git merge hotfix/corrige-bug
📌 Quando usar Git Flow?
Sistemas grandes.
Lançamentos com versões.
Times organizados e com deploys frequentes.
🧩 GitLab Flow – Workflow moderno e adaptável
🧠 O que é o GitLab Flow? É um modelo mais flexível e moderno que combina o controle de versões com o ambiente de deploy (produção, staging etc) e integração com GitLab CI/CD.
🔁 GitLab Flow combina:
Feature branches (como o Git Flow)
Deploy automático por ambiente
Integração com CI/CD
Permissões e revisão via Merge Requests
🧪 Tipos de GitLab Flow
Environment-based
Branches ligadas a ambientes (staging
, prod
)
Release-based
Controle por versão (release/1.2.0
)
Issue-based
Cada issue (tarefa) gera uma branch
🗺️ Exemplo: Issue-Based GitLab Flow
Tudo começa com uma issue no GitLab (ex: #23 Criar página de contato).
O desenvolvedor cria uma branch baseada nela:
git checkout -b issue-23-criar-pagina-contato
Trabalha normalmente:
git add .
git commit -m "Criação da página de contato"
Faz o push:
git push origin issue-23-criar-pagina-contato
Abre um Merge Request (MR) no GitLab.
Outro dev revisa. Se aprovado:
Merge → vai para
main
.CI/CD já pode fazer deploy automático.
⚙️ Comparando Git Flow vs GitLab Flow
Complexidade
Alta
Média
Ambientes separados
Manual
Nativo (com CI/CD GitLab)
Bom para equipes...
Grandes, com controle rígido
Pequenas, médias ou ágeis
Curva de aprendizado
Maior
Mais fácil com o GitLab
Merge automático
Não
Sim, via Merge Request
🧠 Conclusão simples para quem tá começando:
Estudando sozinho ou fazendo projetos simples
Workflow local ou feature branch
Trabalhando em time com organização + CI/CD
GitLab Flow
Projetando algo grande com versões e processos
Git Flow

Last updated