MÓDULO 1.8

🌿 Git Worktrees e branches paralelos

Trabalhe em múltiplas features simultaneamente sem conflito, com workspaces isolados criados automaticamente.

📋6 tópicos ⏱️~25 min 🎯Intermediário 📖Teoria + Prática
1

🔒 Por que worktrees isoladas protegem o trabalho

Worktrees permitem ter múltiplos checkouts do mesmo repositório em diretórios separados, cada um com seu próprio branch, estado de working directory e staging area. Enquanto um agente trabalha na feature A, outro pode trabalhar na feature B — no mesmo repositório, sem interferência.

Sem worktrees

  • • Stash mudanças antes de trocar branch
  • • Contexto perdido ao trocar de tarefa
  • • Risco de commitar na branch errada
  • • Un agente por vez no repositório

Com worktrees

  • • Cada feature tem seu diretório
  • • Sem stash, sem perda de contexto
  • • Impossível commitar na branch errada
  • • Múltiplos agentes em paralelo

Worktrees são um recurso nativo do git — não uma ferramenta externa. O Superpowers apenas automatiza sua criação e configuração via a skill using-git-worktrees.

2

⚙️ Setup automático com using-git-worktrees

A skill using-git-worktrees instrui o agente a criar worktrees com os parâmetros corretos, seguindo a convenção de nomenclatura do projeto. Você apenas especifica o nome da feature e o agente cria o diretório, o branch e configura tudo automaticamente.

Comandos gerados automaticamente

# Para a feature "auth-oauth"
git worktree add ../projeto-auth-oauth -b feature/auth-oauth

# Resultado:
# ../projeto-auth-oauth/  ← novo diretório
# branch: feature/auth-oauth ← branch nova
# mesmo repositório remoto

Convenção de nomenclatura

Por padrão: diretório irmão com sufixo da feature (../projeto-nome-feature). A skill detecta o nome do projeto atual e mantém consistência.

3

🏁 finishing-a-development-branch: merge, PR ou descarte

Após implementar uma feature na worktree, é hora de decidir o destino da branch. A skill finishing-a-development-branch guia esse processo com critérios claros para cada decisão — e inclui a limpeza da worktree ao final.

Merge direto

Quando: feature pequena, testada, sem necessidade de review externo. Faça rebase para manter histórico limpo, então merge.

Abrir PR

Quando: feature maior, precisa de review de equipe, ou é uma contribuição para repositório compartilhado. Push e abertura de PR com descrição completa.

Descarte

Quando: a abordagem não funcionou ou a feature foi cancelada. Remove a worktree e a branch sem merge.

git worktree remove ../projeto-auth-oauth
git branch -d feature/auth-oauth

4

🌐 Múltiplas worktrees simultâneas

Com múltiplas worktrees abertas, você pode ter um agente em cada uma — trabalhando em features diferentes do mesmo repositório ao mesmo tempo. Este é o modo de máxima velocidade do Superpowers: throughput multiplicado pelo número de agentes.

Exemplo: 3 worktrees ativas

# Agente 1 — feature de autenticação

~/projetos/meuapp-auth-oauth/

# Agente 2 — dashboard de métricas

~/projetos/meuapp-dashboard-metrics/

# Agente 3 — correção de bug crítico

~/projetos/meuapp-fix-login-timeout/

Limite prático

3-5 worktrees simultâneas é o sweet spot para a maioria dos projetos. Acima disso, o overhead de coordenação (monitorar múltiplos agentes) tende a superar o ganho de velocidade.

5

⚔️ Resolução de conflitos ao integrar branches

Quando múltiplas features tocam nos mesmos arquivos, conflitos de merge são inevitáveis. A chave é distinguir conflitos sintáticos (que o git detecta) de conflitos semânticos (que o git não detecta mas que quebram o comportamento).

Conflito sintático

Git detecta e marca com <<<. Resolva manualmente escolhendo a versão correta ou combinando as duas. Verifique os testes após resolver.

Conflito semântico

Git não detecta. Feature A muda comportamento de função X; Feature B usa função X com a suposição antiga. Testes de integração capturam isso.

Protocolo pós-merge

Após qualquer merge com conflito: execute o suite de testes completo, não apenas os testes da feature. Conflitos semânticos aparecem em testes de integração, não nos testes unitários da feature.

6

🛠️ Prática: fluxo completo branch ao merge

Exercício completo do fluxo de worktree: criar a worktree, implementar uma feature simples, resolver um conflito simulado e finalizar com merge ou PR.

Roteiro do exercício

  1. 1.Crie uma worktree: git worktree add ../meuapp-pratica -b feature/pratica
  2. 2.Na worktree, implemente uma mudança pequena com testes
  3. 3.No repositório principal, faça uma mudança no mesmo arquivo (simula conflito)
  4. 4.Tente fazer merge da feature branch — resolva o conflito
  5. 5.Execute os testes completos para detectar conflitos semânticos
  6. 6.Limpe a worktree após o merge bem-sucedido

Critério de conclusão

Feature mergeada com sucesso, conflito resolvido corretamente, testes completos passando, worktree limpa. Você domina o fluxo de worktree do início ao fim.

Resumo do Módulo 1.8

Entendi como worktrees isolam features e protegem o trabalho
Sei criar e configurar worktrees automaticamente com a skill
Conheço os critérios para merge, PR ou descarte de branch
Sei gerenciar múltiplas worktrees simultâneas com limite prático
Distingo e resolvo conflitos sintáticos e semânticos
Completei o fluxo completo de worktree: criação → feature → merge → limpeza
Próximo módulo: 1.9 — Agentes paralelos