Git worktree: Turbine o seu vibe coding

Um tempo atrás eu estava no meio de um vibe coding gostoso, o agente de IA trabalhando numa feature, eu empolgado… e chegou um bug urgente pra corrigir. Aí começou o sofrimento que todo dev conhece: git stash, troca de branch, conserta o bug, volta, stash pop, conflito, e lá se foi meia hora da minha vida (e um pedaço da minha paciência rs). Foi um amigo que me perguntou: “tu não usa git worktree, não?”. Eu não usava. Hoje não vivo sem, e vou te explicar o porquê.

O git worktree é daqueles recursos que estão no Git há mil anos, escondidos à vista da maioria dos devs. E justo agora, na era dos agentes de IA escrevendo código, ele virou a peça que faltava.

Primeiro de tudo: o que é uma git worktree?

Normalmente, um repositório Git tem uma pasta só, e nessa pasta vive uma branch de cada vez. Quer mexer em outra branch? Tem que trocar. E trocar significa guardar o que você tava fazendo (o famoso stash), esperar o editor recarregar tudo, e rezar pra nada quebrar.

O git worktree muda esse jogo: ele permite ter várias pastas de trabalho ao mesmo tempo, uma pra cada branch, todas ligadas ao mesmo repositório. O histórico é um só, os commits são os mesmos, mas cada worktree é um diretório independente, com seus próprios arquivos abertos.

Na prática: você pode ter a main numa pasta, uma feature em outra e a correção de um bug numa terceira, todas vivas ao mesmo tempo. Sem stash, sem troca de branch, sem drama.

Guarda essa: worktree não é cópia do projeto, é o mesmo projeto em várias mesas.

Uma casa, várias mesas

Pensa numa casa que só tem uma mesa. Nela você almoça, a criança faz lição, você costura, monta quebra-cabeça. Toda vez que muda de atividade, tem que tirar tudo da mesa, guardar com cuidado e montar a próxima bagunça. Um saco, né?

O jeito clássico de usar o Git é essa casa de mesa única. O git stash é você tirando o almoço da mesa pra caber a lição. Funciona, mas cansa.

Worktree é comprar mais mesas pra mesma casa. A geladeira é uma só (o repositório, com todo o histórico), mas agora o quebra-cabeça fica montado numa mesa enquanto o almoço acontece na outra. Você não desmonta nada: só levanta e muda de cadeira. Sério, para e pensa em quanto tempo você perde por dia desmontando mesa!

Como usar o git worktree add agora

A boa notícia: se você tem Git instalado, já tem worktree. Não precisa instalar nada.

Dentro do seu repositório, o comando git worktree add ../meu-projeto-feature -b feature/nova-tela cria uma pasta nova ao lado da atual, já com a branch feature/nova-tela criada e ativa nela. Pronto: é só abrir essa pasta em outra janela do editor e trabalhar.

Pra ver as mesas que você tem espalhadas, git worktree list mostra todas, com a branch de cada uma. Quando terminar o trabalho e a branch já estiver mesclada, git worktree remove ../meu-projeto-feature desmonta aquela mesa. E se você apagou a pasta na mão (acontece rs), um git worktree prune limpa os registros órfãos.

Duas observações que evitam susto: a mesma branch não pode estar aberta em duas worktrees ao mesmo tempo, o Git bloqueia justamente pra você não se atropelar. E cada worktree tem seus arquivos próprios, então projetos com dependências (o node_modules da vida) pedem um npm install em cada pasta.

Um comando, uma mesa nova. É simples assim.

Worktree + vibe coding: um agente em cada mesa

Agora o pulo do gato. Se você curte vibe coding, aquele fluxo de descrever o que quer e deixar a IA codar, como os agentes do tipo do GPT-6, você já sentiu essa dor: o agente trabalhando na sua pasta e você sem poder encostar em nada, senão vira conflito. Ficar olhando a IA trabalhar é legal nos primeiros dez minutos. Depois é tédio puro.

Com worktree, o fluxo muda de figura. Você cria uma worktree pro agente e manda: “trabalha aqui”. Ele fica na mesa dele, com a branch dele, sem interferência. Enquanto isso, você segue codando na sua mesa, ou melhor: abre outra worktree e coloca um segundo agente pra trabalhar em outra tarefa em paralelo. Tem guia recente mostrando gente rodando 4 ou 5 agentes ao mesmo tempo, cada um na sua worktree, num laptop comum.

Quando um agente termina, você revisa com calma: um git diff main..feature/tarefa-a mostra tudo o que ele fez, e aí você decide se mescla, ajusta ou descarta. A branch descartada morre sozinha, sem sujar nada.

E uma dica de quem já se queimou: põe nome de tarefa pras branches (agente/refatora-login), e não nome genérico. Daqui a três dias você não vai lembrar o que era a “teste-2” (confia em mim, não vai).

A IA trabalha na mesa dela, você trabalha na sua. Esse é o segredo do vibe coding sem stress.

Cuidados pra sua casa não virar bagunça

Nem tudo são flores, então vamos ao papo honesto. Worktree resolve o isolamento do código, mas não faz milagre com o resto: se dois agentes subirem o servidor de testes na mesma porta, vai dar conflito do mesmo jeito. Combine portas diferentes ou rode um de cada vez.

Revisão continua sendo sagrada. Com vários agentes produzindo código em paralelo, o gargalo deixa de ser escrever e passa a ser revisar. Não caia na tentação de mesclar sem ler: código que você não revisou é código que você não conhece. Já escrevi isso sobre o Astra e repito aqui.

E tenha bom senso na quantidade de mesas. Duas ou três worktrees organizam sua vida; dez viram um episódio de acumuladores. Terminou, removeu.

Perguntas frequentes

Preciso instalar algo pra usar git worktree?
Não. O git worktree é nativo do Git desde a versão 2.5, de 2015. Se o seu Git está minimamente atualizado, o comando já está aí.

Git worktree é a mesma coisa que clonar o repositório de novo?
Não. Um clone duplica tudo, inclusive o histórico, e vira um repositório separado. Worktrees compartilham o mesmo repositório e o mesmo histórico: um commit feito numa worktree aparece nas outras na hora.

Posso abrir a mesma branch em duas worktrees?
Não, o Git bloqueia por segurança. Cada branch só pode estar ativa em uma worktree por vez, justamente pra evitar que você edite a mesma coisa em dois lugares.

Worktree funciona com qualquer ferramenta de vibe coding?
Sim. Como a worktree é só uma pasta normal com uma branch ativa, qualquer agente de IA que trabalhe numa pasta (Claude Code, Cursor e afins) funciona nela sem configuração especial.

Mesma casa, mais mesas: você muda de cadeira, não desmonta o trabalho.

Abraços, Fellipe Soares

Leave a Reply

Your email address will not be published. Required fields are marked *