Skip to content

Gitflow

Vinícius Stutz edited this page Sep 30, 2026 · 3 revisions

O Gitflow é uma estratégia de ramificação (branching strategy) para o Git que define um modelo rígido e estruturado de branches para o ciclo de vida de um projeto. Ele é especialmente útil em projetos com releases agendadas e equipes colaborando simultaneamente.

Branches Principais

Branch Propósito
main Código em produção. Só recebe código estável e aprovado.
develop Integração de todas as features em desenvolvimento. Base para releases.

Branches de Suporte

Branch Prefixo Origem Destino
Feature feature/ develop develop
Release release/ develop main + develop
Hotfix hotfix/ main main + develop + release
Bugfix bugfix/ release release + develop
Housekeeping housekeeping/ release release + develop

Diagrama do Fluxo

main      ─────────────────────────────────────────────────●──────────────────────●
               │                                           ↑ merge release        ↑ merge release (hotfix)
release   ─────●───────────────────────────────────────────●──────────────────────●
               │        ↑ merge feature  ↑ merge bugfix                           ↑
develop   ─────●─────────●───────────────●────────────────────────────────────────●
                         ↑               ↑                                        ↑
feature            feature/xxx           │                                        │
bugfix                            bugfix/xxx                                      │
hotfix                                                                      hotfix/xxx

Note

Diagrama interativo: Para uma visualização do fluxo em formato Mermaid gitGraph (compatível com Obsidian e GitLab etc), consulte o diagrama.

Fluxo Passo a Passo

1. Iniciando o Projeto

# Cria e publica a branch develop a partir da main
git checkout main
git checkout -b develop
git push origin develop

2. Desenvolvendo uma Feature

# Cria a branch de feature a partir da develop
git checkout develop
git checkout -b feature/minha-feature

# ... desenvolve o código ...

# Mescla de volta na develop
git checkout develop
git merge --no-ff feature/minha-feature
git branch -d feature/minha-feature
git push origin develop

3. Preparando uma Release

# Cria a branch de release a partir da develop
git checkout develop
git checkout -b release/1.1.0

# ... ajustes finais, bump de versão ...

# Mescla na main (vai para produção)
git checkout main
git merge --no-ff release/1.1.0
git tag -a v1.1.0

# Mescla de volta na develop
git checkout develop
git merge --no-ff release/1.1.0
git branch -d release/1.1.0

4. Corrigindo um Bug em Produção (Hotfix)

# Cria o hotfix direto da main (produção)
git checkout main
git checkout -b hotfix/correcao-critica

# ... corrige o bug ...

# Mescla na main
git checkout main
git merge --no-ff hotfix/correcao-critica
git tag -a v1.1.1

# Mescla na develop também
git checkout develop
git merge --no-ff hotfix/correcao-critica
git branch -d hotfix/correcao-critica

Sequência de Tags de Versão

O Gitflow segue o padrão de versionamento semântico (SemVer): MAJOR.MINOR.PATCH

Tipo de Mudança Exemplo Versão
Feature nova feature/login v1.0.0 → v1.1.0
Bugfix bugfix/erro-login v1.1.0 → v1.1.1
Hotfix em produção hotfix/crash-critico v1.1.1 → v1.1.2

Referências