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

Nome da branch
Função principal

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:

  1. Feature branches (como o Git Flow)

  2. Deploy automático por ambiente

  3. Integração com CI/CD

  4. Permissões e revisão via Merge Requests


🧪 Tipos de GitLab Flow

Modelo
Uso principal

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

  1. Tudo começa com uma issue no GitLab (ex: #23 Criar página de contato).

  2. O desenvolvedor cria uma branch baseada nela:

git checkout -b issue-23-criar-pagina-contato
  1. Trabalha normalmente:

git add .
git commit -m "Criação da página de contato"
  1. Faz o push:

git push origin issue-23-criar-pagina-contato
  1. Abre um Merge Request (MR) no GitLab.

  2. Outro dev revisa. Se aprovado:

    • Merge → vai para main.

    • CI/CD já pode fazer deploy automático.


⚙️ Comparando Git Flow vs GitLab Flow

Ponto
Git Flow
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:

Se você está...
Use...

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