Git Worktrees e Fluxos de Trabalho Paralelos
- O que é um git worktree — um repositório, vários diretórios de trabalho, cada um em seu próprio branch
- O problema exato que ele resolve: impedir que sessões paralelas do Claude colidam nos mesmos arquivos
- Os quatro comandos para adicionar, listar e remover worktrees
- Quando a técnica vale a pena — e as três armadilhas que mordem na hora do merge
- Como worktrees se combinam com subagentes: paralelismo entre sessões versus dentro de uma só
Um git worktree permite que um único repositório tenha vários diretórios de trabalho, cada um com checkout em um branch diferente. Combine isso com o Claude Code e você poderá executar várias sessões em paralelo no mesmo projeto — cada uma editando seus próprios arquivos, sem colisões.
O problema que ele resolve
Se duas sessões do Claude editam o mesmo diretório de trabalho ao mesmo tempo, elas tropeçam nas mudanças uma da outra. Os worktrees dão a cada sessão seu próprio diretório e branch, de modo que o trabalho paralelo permanece isolado até você fazer o merge.
O básico
Quatro comandos sustentam todo o fluxo de trabalho: adicionar um worktree (novo diretório + novo branch), listar o que existe e remover um quando você terminar.
- A partir do seu repositório, git worktree add ../app-feature-a -b feat-a cria um novo diretório E um novo branch de uma só vez.
- git worktree add ../app-fix-123 -b fix-123 — um segundo diretório/branch isolado, lado a lado com o primeiro.
- git worktree list mostra cada diretório de trabalho e o branch em que ele está.
- git worktree remove ../app-feature-a desmonta um worktree para que diretórios obsoletos não se acumulem.
O fluxo de trabalho de quatro comandos
# from your repo git worktree add ../app-feature-a -b feat-a # new dir + new branch git worktree add ../app-fix-123 -b fix-123 git worktree list # when done with one: git worktree remove ../app-feature-a
Abra uma sessão do Claude Code em cada diretório de worktree e deixe-as trabalhar de forma independente.
Quando vale a pena
- Features/fixes paralelos que você quer fazer progredir ao mesmo tempo.
- Uma tarefa longa em execução em um worktree enquanto você continua trabalhando em outro.
- Experimentos arriscados isolados do seu checkout principal.
Armadilhas
- Fique atento ao merge de volta: os branches acabarão sendo mesclados — os conflitos aparecem nesse momento, não durante. Mantenha os worktrees focados e de vida curta.
- Não execute recursos compartilhados com estado (um único banco de dados de dev, uma única porta) a partir de dois worktrees sem separá-los.
- Faça a limpeza com git worktree remove para que diretórios obsoletos não se acumulem.
Worktrees versus subagentes
Dois eixos diferentes de paralelismo — eles não competem, eles se empilham.
| O que ele paraleliza | Isolamento | |
|---|---|---|
| Subagentes | Trabalho dentro de uma sessão (delegação) | Contexto isolado |
| Worktrees | Trabalho entre sessões no disco | Branches/arquivos isolados |
Eles se combinam bem: uma sessão em um worktree pode, ela mesma, gerar subagentes.
- Use um worktree quando precisar de duas sessões do Claude tocando no mesmo repositório ao mesmo tempo; use um subagente quando uma sessão precisar transferir um bloco de trabalho para um contexto isolado.
Teste-se
0/4- Um git worktree = um repositório, vários diretórios de trabalho, cada um em seu próprio branch — a base para sessões paralelas do Claude livres de colisão.
- Duas sessões em um único diretório de trabalho tropeçam uma na outra; um worktree por sessão mantém arquivos e branches isolados até você fazer o merge.
- git worktree add ../dir -b branch cria diretório + branch; list os mostra; remove faz a limpeza.
- Vale a pena para features/fixes paralelos, tarefas de longa duração ao lado de outro trabalho e experimentos arriscados isolados.
- Cuidado com o merge de volta, não compartilhe recursos com estado (banco de dados, porta) entre worktrees e sempre faça a limpeza — e lembre-se de que worktrees se combinam com subagentes.