Desfazer mudanças do Claude Code: rewind, git, checkpoints

Desfaça mudanças do Claude Code com /rewind, git ou checkpoints do AgentVera: o que cada um restaura, o que deixa passar e como voltar um turno com segurança.

Solviera Teknoloji 7 min de leitura

Para desfazer mudanças do Claude Code, use /rewind para edições feitas na sessão atual, o git para tudo o que teve commit ou pode ser restaurado do repositório, e os checkpoints do AgentVera quando quiser voltar a pasta de trabalho inteira ao início de um turno específico do agente. Cada um cobre uma lacuna diferente. Saber qual usar evita que você perca o seu trabalho enquanto desfaz o do agente.

Este guia compara os três, mostra os passos exatos de cada um e lista o que cada um deixa passar. Essa última parte costuma ser a que machuca.

A resposta curta

Você quer desfazerUseCuidado com
As últimas edições desta sessão do Claude Code/rewind ou Esc duas vezesMudanças de comandos de shell não são rastreadas
Mudanças em um arquivo rastreadogit restore <file>Edições sem commit naquele arquivo se perdem
Tudo desde o último commitgit stash -u ou git reset --hard + git cleanclean apaga arquivos não rastreados de vez
Uma mudança com commitgit revert <commit>Cria um novo commit que a reverte
Um turno do agente, incluindo arquivos que ele criou com comandos de shellCheckpoints do AgentVeraTambém volta outros agentes na mesma pasta

Opção 1: /rewind dentro do Claude Code

O Claude Code salva checkpoints conforme edita arquivos. Para voltar, pressione Esc duas vezes ou rode /rewind. Você escolhe uma mensagem da sessão e depois o que restaurar:

  • Só o código: os arquivos voltam a como estavam naquela mensagem, e a conversa continua.
  • Só a conversa: a conversa volta, e os arquivos ficam como estão.
  • Os dois: um passo limpo de volta àquele ponto.

É o jeito mais rápido de desfazer enquanto você ainda está na sessão, e é o primeiro movimento certo quando o agente acabou de fazer uma edição ruim.

O que ele deixa passar: os checkpoints do Claude Code rastreiam as edições feitas pelas ferramentas de arquivo dele. Mudanças feitas por comandos de shell, como rm, mv, um gerador de código ou um script de migration, não são rastreadas. Mudanças de outras sessões ou de outras ferramentas na mesma pasta também não. O /rewind é uma conveniência, não um substituto do controle de versão.

Opção 2: git

O git é o desfazer que funciona para qualquer ferramenta, desde que o trabalho que você quer manter ou descartar seja algo que o git enxergue.

# See what changed
git status
git diff

# Throw away changes to one tracked file
git restore src/api/user.ts

# Park everything, including new files, and keep it in case you need it
git stash -u

# Drop all uncommitted changes to tracked files
git reset --hard

# Delete untracked files and folders (check first with -n)
git clean -n -d
git clean -f -d

# Reverse a commit the agent already made
git revert <commit>

Dois hábitos tornam o git um desfazer muito melhor para o trabalho de agentes:

  1. Faça commit antes de colocar um agente em uma tarefa. Assim o git diff mostra exatamente o que o agente fez, e git stash -u ou git reset --hard levam você de volta.
  2. Dê a cada agente a própria worktree. Assim desfazer um agente nunca mexe no trabalho de outro. Veja Git worktrees para agentes em paralelo.

O que ele deixa passar: tudo o que está entre commits. Se você fez suas próprias edições nos mesmos arquivos enquanto o agente trabalhava, git reset --hard descarta as suas também. git clean apaga arquivos não rastreados de vez, então sempre rode com -n antes.

Opção 3: checkpoints do AgentVera

O AgentVera acrescenta um desfazer por turno que fica entre os dois. Ele funciona com qualquer CLI de agente que rode em uma pasta local, não só com o Claude Code.

Como os snapshots funcionam

No início de cada turno, o AgentVera tira um snapshot da pasta de trabalho do agente (a worktree dele, ou a pasta do projeto). O snapshot cobre arquivos rastreados e não rastreados e respeita o .gitignore. Ele é guardado como um commit em uma ref oculta, refs/agentvera/checkpoints/…. Suas branches, o index, o stash e o HEAD não mudam, e nada aparece no git log nem no git status.

Os últimos 60 turnos são guardados por agente. Apagar o agente descarta os snapshots dele. O projeto precisa ser um repositório Git. O primeiro snapshot é feito quando você manda uma mensagem ao agente (ou digita para o Claude no terminal).

Volte um turno

  1. No cabeçalho do painel do agente, clique em Turns (“Turns and rollback”). Em um painel estreito, fica em Options.
  2. A lista mostra os turnos do mais novo para o mais antigo, cada um com número, prompt e horário. Um turno digitado direto no terminal aparece como “Turn typed in the terminal”.
  3. Expanda um turno para ver os arquivos que ele mudou, marcados como adicionados, modificados ou apagados, com a contagem de linhas.
  4. Clique em Roll back this turn e confirme em Roll back turn.

A pasta de trabalho volta ao início daquele turno. Arquivos adicionados depois dele são apagados, e arquivos alterados ou apagados são restaurados. O AgentVera então informa quantos arquivos restaurou. Se o agente ainda estiver trabalhando, o diálogo recomenda pará-lo antes, para ele não continuar editando enquanto a pasta muda por baixo dele.

Desfaça a volta

Antes de voltar, o AgentVera salva o estado atual separadamente. Ele aparece no topo da lista como State before the rollback. Clique em Return to this state para recuperar exatamente o que você tinha. Então testar uma volta é seguro. Se no fim a mudança do agente estava boa, você pode retornar a ela.

Pelo celular

Se você controla agentes pelo Telegram, os botões do agente incluem ↩️ Undo last turn. Ele mostra a lista de arquivos e pede confirmação. Depois, você ainda pode desfazer isso pela lista de checkpoints no desktop. Veja Controle pelo Telegram.

O que ele deixa passar

  • Outros agentes na mesma pasta. Uma volta restaura a pasta, então mudanças posteriores de outros agentes trabalhando nela também são desfeitas. A confirmação avisa isso. Worktrees evitam o problema.
  • Arquivos ignorados. Arquivos que casam com o .gitignore, como node_modules ou um .env local, não fazem parte do snapshot.
  • Coisas fora da pasta. Um banco de dados que o agente migrou, um pacote que ele publicou ou um push que ele fez não são arquivos da pasta, então nenhum snapshot de pasta consegue desfazê-los.
  • Agentes via SSH e terminais comuns. Nenhum checkpoint é feito para agentes em um servidor remoto, porque as pastas deles não estão neste computador.

Qual usar e quando

  • O agente acabou de fazer uma edição ruim e você ainda está na sessão: /rewind.
  • O agente rodou um script que apagou ou gerou arquivos: checkpoints do AgentVera ou git, não /rewind.
  • Vários turnos foram para o lado errado: volte ao início do primeiro turno ruim em Turns. Você pode retornar ao estado atual se mudar de ideia.
  • O trabalho já tem commit: git revert.
  • Você quer recomeçar a tarefa inteira do zero: git stash -u ou git reset --hard, se fez commit antes de começar.

Menos desfazer, para começo de conversa

Desfazer é a rede de segurança, não o plano. Alguns hábitos fazem você precisar menos dele:

  • Prompts pequenos e delimitados. Um turno que muda três arquivos é fácil de revisar e fácil de desfazer.
  • Planeje antes em trabalhos arriscados. Peça ao agente para descrever a mudança antes de fazê-la.
  • Revise todo turno. A revisão de código do AgentVera pode revisar o código de um agente ao fim de cada turno. Revisão de código com IA mostra o que procurar.
  • Deixe comandos destrutivos atrás de aprovação. Segurança de agentes de código com IA cobre permissões, isolamento com Docker e aprovações.

Concluindo

Não existe um único desfazer para um agente de código com IA. O /rewind é rápido para as edições da sessão atual. O git cobre tudo o que ele enxerga, e funciona melhor quando você faz commit antes de cada tarefa. Os checkpoints do AgentVera preenchem a lacuna entre os dois com um snapshot da pasta de trabalho inteira a cada turno, uma volta que pode ela mesma ser desfeita, e o mesmo botão no seu celular. A página de checkpoints e replay também cobre o replay de sessão, que reproduz uma sessão do Claude ou do Codex passo a passo para você ver onde ela deu errado.

Perguntas frequentes

Como desfaço a última coisa que o Claude Code fez?

No Claude Code, pressione Esc duas vezes ou rode /rewind, escolha a mensagem para a qual quer voltar e decida se restaura código, conversa ou os dois. No AgentVera, abra Turns no painel do agente e escolha Roll back this turn.

Por que o /rewind não trouxe de volta um arquivo apagado?

Os checkpoints do Claude Code rastreiam as edições feitas pelas ferramentas de arquivo dele. Arquivos alterados ou apagados por comandos de shell, como rm ou um script, não são rastreados. Para esses casos, use o git ou um snapshot da pasta, como os checkpoints do AgentVera.

Os checkpoints do AgentVera mudam minhas branches ou meu stash?

Não. Os snapshots são guardados em uma ref oculta do git. Suas branches, o index, o stash e o HEAD ficam intactos. O projeto precisa ser um repositório Git.

Posso desfazer uma volta de turno?

Sim. Antes de voltar, o AgentVera salva o estado atual como “State before the rollback”. Escolha Return to this state para retornar a ele.

Os checkpoints funcionam com o Codex e outros agentes?

Sim. Os checkpoints são feitos para qualquer CLI de agente que trabalhe em uma pasta local, não só para o Claude Code. Eles não são feitos para agentes em um servidor SSH nem para terminais comuns.

Reúna seus agentes em uma só mesa.

Baixe o AgentVera de graça; as CLIs que você já instalou estão prontas para usar.

Mais artigos