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 desfazer | Use | Cuidado com |
|---|---|---|
| As últimas edições desta sessão do Claude Code | /rewind ou Esc duas vezes | Mudanças de comandos de shell não são rastreadas |
| Mudanças em um arquivo rastreado | git restore <file> | Edições sem commit naquele arquivo se perdem |
| Tudo desde o último commit | git stash -u ou git reset --hard + git clean | clean apaga arquivos não rastreados de vez |
| Uma mudança com commit | git revert <commit> | Cria um novo commit que a reverte |
| Um turno do agente, incluindo arquivos que ele criou com comandos de shell | Checkpoints do AgentVera | També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:
- Faça commit antes de colocar um agente em uma tarefa. Assim o
git diffmostra exatamente o que o agente fez, egit stash -uougit reset --hardlevam você de volta. - 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
- No cabeçalho do painel do agente, clique em Turns (“Turns and rollback”). Em um painel estreito, fica em Options.
- 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”.
- Expanda um turno para ver os arquivos que ele mudou, marcados como adicionados, modificados ou apagados, com a contagem de linhas.
- 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, comonode_modulesou um.envlocal, 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 -uougit 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.