Você já perdeu tempo alternando entre branches, fazendo stash de meia dúzia de arquivos e rezando para não esquecer nenhuma dependência na hora de corrigir um bug urgente? Se a resposta for “sim”, prepare-se: os Git worktrees podem virar o seu fluxo de trabalho de cabeça para baixo — no bom sentido.
O que é, afinal, um worktree?
Pense em um worktree como um “clone” leve do seu repositório principal, ligado ao mesmo histórico de commits, mas alocado em uma pasta à parte. Cada worktree fica preso a um branch específico, permitindo que você trabalhe em paralelo sem mexer no que estava fazendo antes.
Por que todo mundo só fala disso agora?
Embora o recurso exista desde 2015, ele ganhou holofotes com a ascensão de ferramentas de IA, como o GitHub Copilot, que incentivam sessões simultâneas de coding. A demanda por trabalhar em paralelo — revisando PRs enquanto codamos novas features — nunca foi tão alta. Worktrees encaixam-se perfeitamente nesse novo ritmo.
Como você trabalhava antes (e sofria com isso)
No modelo clássico, o passo a passo para pausar uma tarefa e resolver um hotfix era mais ou menos assim:
- Fazer
git stashdo que estava em andamento; - Mudar para
main, darpull, criar branch de hotfix, consertar, enviar PR; - Merge aprovado? Voltar para
main, deletar branch, aplicarstash pope torcer para não quebrar nada.
Cada troca de contexto acarretava recarregar editor, reinstalar dependências e aquele risco constante de conflito de stash.
Como funciona com worktrees (spoiler: é bem mais simples)
Com apenas um comando você cria um segundo “espaço de trabalho”:
git worktree add ../hotfix-workspace -b hotfix-bug main
Isso gera uma pasta irmã (../hotfix-workspace) já no branch hotfix-bug, sem alterar seu editor principal.
Abra essa nova pasta em outra janela, corrija o bug, faça commit, push e PR normalmente. Depois do merge, basta remover:
git worktree remove ../hotfix-workspace
Pronto: sem stash, sem dependência duplicada no seu diretório principal e com foco total.
Imagem: Internet
Principais vantagens na prática
1. Zero interrupção de contexto: seu editor original continua intacto.
2. Trabalhos paralelos de verdade: ideal para quem faz revisão de código enquanto desenvolve novas features.
3. Adeus clones múltiplos: chega de manter várias cópias inteiras do mesmo repositório.
Nem tudo são flores: pontos de atenção
Dependências em dobro: cada pasta de worktree exige suas próprias instalações de npm, pip ou similares. SSD pequeno? Fique de olho.
Limpeza de pastas: esqueceu de remover o worktree? Seu diretório pode virar uma bagunça. Automação ajuda, mas ainda é sua responsabilidade.
Uma branch por vez: o Git não deixa o mesmo branch ativo em dois worktrees simultâneos para evitar corrupção de dados.
Worktrees x branches x forks: quando usar cada um?
• Branches tradicionais: ótimos para fluxos lineares e simples.
• Worktrees: imbatíveis quando você precisa mexer em múltiplas tarefas simultâneas no mesmo repositório.
• Forks: solução para colaborar em projetos externos ou quando você não tem permissões de escrita.
Dicas rápidas para começar agora
- Mantenha worktrees fora da pasta do repo principal para não poluir logs e commits acidentais;
- Crie um alias no seu
.gitconfigpara agilizar:wt = worktree; - Use scripts de pós-merge ou extensões de editor para deletar worktrees automaticamente após o PR ser aceito.
Vale a pena adotar?
Se o seu dia a dia envolve múltiplos tickets, revisões simultâneas ou experimentos rápidos, a resposta tende a ser “sim, imediatamente”. Ainda prefere o fluxo clássico? Sem problemas: combine ambos conforme o projeto exigir. O importante é saber que a ferramenta existe e pode poupar horas de interrupções desnecessárias.
No fim das contas, worktrees são como ter vários “ambientes de desenvolvimento” instantâneos sem o peso de clones completos. Teste, ajuste ao seu estilo e descubra por que essa funcionalidade ficou tão em alta quase uma década depois de nascer.
Com informações de GitHub Blog