Pular para o conteúdo
MÓDULO 2.2 · CONCEITO 6 DE 18

🌿 Worktrees: cópias para testar sem medo

Uma worktree é uma cópia de trabalho do projeto onde o Codex testa uma ideia arriscada sem encostar no original. Deu certo, você junta. Deu errado, joga fora. Você vai ver esse nome na interface, então vale entender, mesmo que use pouco.

6
Tópicos
~30
Minutos
Base
Nível
Ambiente
Tipo
0 de 60%
Ilustração: uma pasta original fica protegida numa bancada enquanto, ao lado, uma cópia idêntica e luminosa é usada para um teste. Uma linha de luz liga a cópia de volta à original. A cena mostra a ideia da worktree: testar na cópia e só juntar o que deu certo.
1

Entenda o risco de mexer no original

O Rui tem um site simples da loja, na pasta loja-rui/site. Os clientes já usam. Um dia ele pediu ao Codex: "refaça o visual inteiro do site, com cores novas e um menu diferente".

O Codex mexeu direto nos arquivos originais. O visual novo ficou estranho, e o Rui não sabia mais como era o antigo. Esse é o risco: teste feito no original é teste sem volta, a não ser que exista uma cópia.

🆕 Novo aqui? Cinco palavras deste módulo

  • Git — um programa que guarda o histórico de versões de uma pasta. Cada versão salva vira um ponto ao qual você pode voltar.
  • Worktree — uma cópia de trabalho paralela do projeto, criada pelo Git, para mexer sem tocar no original.
  • Branch — uma linha paralela de mudanças. Pense num desvio da estrada que pode voltar à pista principal.
  • main — o nome da linha principal (em projetos mais antigos, master). É o "original".
  • Merge — juntar as mudanças de uma linha paralela de volta na principal.
sem cópia Codex site original ⚠ sem volta com cópia 🛡️ original intacto Codex cópia de teste rachou? descarta

Como ler o desenho: em cima, a seta do Codex atinge o original e a rachadura fica para sempre. Embaixo, a seta passa por cima do original e cai na cópia tracejada. O original nem fica sabendo do teste.

✗ Testar no original

  • ✗ O site que os clientes usam muda na hora
  • ✗ Difícil lembrar como era antes
  • ✗ Duas ideias ao mesmo tempo se misturam

✓ Testar numa cópia

  • ✓ O original segue funcionando
  • ✓ Comparar antes e depois lado a lado
  • ✓ Descartar sem prejuízo se não gostar
2

Veja o que é uma worktree

Copiar a pasta na mão ("site-copia", "site-copia2") até funciona, mas vira bagunça rápido. A worktree é a forma organizada de fazer isso: o Git cria uma segunda pasta de trabalho ligada ao mesmo histórico do projeto.

As duas pastas sabem uma da outra. Por isso, depois, dá para levar só as mudanças boas da cópia para o original, sem arrastar arquivo por arquivo. Para isso funcionar, a pasta do projeto precisa estar sob controle do Git.

📚 histórico do Git todas as versões salvas original · main 📁 loja-rui/ site/index.html (cores antigas) estoque.csv worktree · linha paralela 📁 loja-rui-visual-novo/ site/index.html (cores novas) estoque.csv

Como ler o desenho: as duas pastas embaixo parecem iguais, mas o index.html de cada uma está diferente. O bloco de cima é o que as une: o mesmo histórico. É ele que permite juntar depois.

📁
Outra pasta

no seu computador

🔗
Mesmo histórico

ligada ao original

🧪
Para testar

ideia arriscada

🗑️
Descartável

sem dó

💡 Worktree também é local

A cópia fica no seu computador, como o original. Não é nuvem nem backup externo. Se o disco quebrar, as duas vão junto: backup continua sendo outro assunto.

3

Conheça branch e main sem medo

Toda worktree trabalha numa branch: uma linha paralela de mudanças. A linha principal se chama main. Quando o app mostra "main" e outros nomes, ele está dizendo em que linha cada pasta está.

Pense no metrô. A main é a linha azul que todo mundo usa. A branch é um ramal que sai dela para testar uma estação nova. Se a estação der certo, o ramal se reconecta à linha azul. Se não der, o ramal é desativado e a linha azul nem percebe.

main branch: visual-novo branch: menu-lateral (descartada) v1 v2 v3 v4 · merge teste 1 teste 2

Como ler o desenho: a linha grossa azul é a main, sempre em uso. O ramal ciano de cima saiu em v2, testou duas vezes e voltou em v4: isso é o merge. O ramal cinza de baixo não deu certo e terminou no X, sem estragar a linha principal.

Você vêQuer dizerPrecisa se preocupar?
main (ou master)A linha principal, o originalNão. É onde você normalmente está
Outro nome de branchUma linha paralela de testeSó se você não pediu: pergunte ao Codex
Várias worktrees listadasCópias de trabalho em paraleloNão. O Codex às vezes cria sozinho

O que olhar na tabela: a coluna da direita. Na maior parte dos casos a resposta é "não": esses nomes só informam onde cada cópia está.

4

Crie uma worktree no Codex

Você não precisa saber Git para usar worktree no Codex. No aplicativo, ao começar uma conversa, existe a opção de trabalhar numa nova worktree local. No terminal, basta abrir com codex --worktree.

O Rui voltou ao visual novo do site, agora do jeito certo. O nome do botão pode mudar entre versões; procure perto da caixa de mensagem algo como "worktree" ou "trabalhar em paralelo".

1

Confira se a pasta usa Git

Pergunte ao Codex: "esta pasta está sob controle do Git?". Se não estiver, peça para ele ativar e salvar uma primeira versão antes de qualquer teste.

2

Comece a conversa numa worktree

No app, escolha a opção de nova worktree local antes de mandar a mensagem. No terminal, entre na pasta e rode codex --worktree.

3

Peça o teste arriscado

"Refaça o visual do site com cores novas e menu diferente." Tudo acontece na cópia.

4

Compare antes de decidir

Abra a prévia da cópia e a do original lado a lado. Só então decida: juntar (próximo tópico) ou descartar.

Projetos 📁 loja-rui ⎇ main ⎇ visual-novo 📁 paula-escritorio refaça o visual do site com cores novas trabalhando na cópia visual-novo… mensagem… 🌿 nova worktree local ▾

Como ler o desenho: na barra lateral, o projeto do Rui agora mostra duas linhas, main e visual-novo (destacada, porque é onde a conversa está). O seletor brilhante embaixo é onde se escolhe a worktree antes de mandar a mensagem. Os nomes da tela são ilustrativos.

⌨️ Copia e cola: abrir o Codex numa worktree pelo terminal

Objetivo: começar uma sessão numa cópia de trabalho nova, sem tocar no original.

cd <caminho-da-pasta-loja-rui>
codex --worktree
Como verificar: pergunte "em que pasta e em que branch você está agora?". A resposta deve citar uma pasta diferente da original e uma branch que não é a main.
5

Junte o resultado de volta

O visual novo ficou bom. Agora as mudanças precisam sair da cópia e entrar no original. Esse passo se chama merge. Você não precisa fazer à mão: peça ao Codex.

O cuidado é um só: peça para ele mostrar o que vai mudar antes de juntar. Se o original também mudou enquanto você testava, os dois lados podem ter mexido no mesmo trecho. Isso se chama conflito, e o Codex explica e resolve com você.

1 · cópia visual-novo + cores novas+ menu no topo+ botão de WhatsApp 2 · revisão "vou mudar 3 coisasem 2 arquivos" ✓ pode juntar 3 · original main visual novo no ar ✓ não gostou? 🗑️ descarta a cópia

Como ler o desenho: leia da esquerda para a direita. O quadro do meio é o momento mais importante: é ali que você vê o que vai entrar no original e aprova. A seta tracejada de baixo é a saída de emergência: descartar sem juntar nada.

💬 Copia e cola no Codex: juntar com revisão

Objetivo: levar as mudanças da worktree para o original só depois de ver o que muda.

Gostei do resultado desta worktree. Antes de juntar com a main, me mostre em linguagem simples quais arquivos mudam e o que muda em cada um. Se houver conflito com a main, explique e me pergunte como resolver. Só junte depois que eu disser "pode juntar".
Como verificar: depois do "pode juntar", volte para a main e abra a prévia do site. As cores novas, o menu e o botão têm de aparecer no original.

💡 Descartar também é resultado

Se o teste não ficou bom, diga "descarte esta worktree e volte para a main". Você aprendeu o que não quer sem ter estragado nada. Esse é o ponto da cópia.

6

Saiba quando você não precisa disso

Worktree nasceu para software feito em equipe: várias pessoas, ou vários agentes, mexendo no mesmo código ao mesmo tempo. Para o trabalho de escritório da Paula, quase nunca é preciso.

Se ela quer testar outro tom numa proposta, basta pedir "crie uma versão nova em outro arquivo e não mexa na original". E se aparecer uma worktree que você não pediu, não se assuste: o Codex às vezes cria sozinho para trabalhar em paralelo.

risco da mudança → quantosmexem → Paula ajusta uma propostanão precisa: arquivo novo resolve Rui refaz o site da lojavale a pena vários, mudança pequenadepende equipe de softwareessencial

Como ler o desenho: quanto mais para a direita (mais risco) e para cima (mais gente mexendo), mais a worktree ajuda. A Paula vive no canto de baixo à esquerda, onde ela não faz diferença.

✓ Use worktree quando

  • ✓ A mudança é grande e pode quebrar algo que está em uso
  • ✓ Quer comparar duas ideias lado a lado
  • ✓ Vários agentes vão mexer no mesmo projeto ao mesmo tempo

✗ Não precisa quando

  • ✗ É um texto, um e-mail ou um post
  • ✗ "Salvar como versão nova" já resolve
  • ✗ A pasta nem usa Git e você não quer começar agora

Teste rápido (opcional): para que serve uma worktree?

🎓 Resumo do módulo

✓
Teste no original não tem volta — teste numa cópia.
✓
Worktree = cópia ligada ao histórico — criada pelo Git, fica no seu computador.
✓
main é a linha principal — branch é o ramal de teste.
✓
App ou codex --worktree — e o Codex junta com revisão.
✓
Escritório quase nunca precisa — arquivo novo já resolve.

Próximo módulo:

2.3 — A pasta .codex: configurações