Cursor rompió mi código: ¿cómo deshago los cambios?
Cómo volver atrás si Cursor u otro agente de IA rompe tu proyecto: checkpoints, /rewind en Claude Code, el comando de git para cada caso y lo que no se deshace.
Read in English →
Si el agente de Cursor rompió tu código, lo más rápido es usar Restore Checkpoint en el mensaje del chat anterior al problema: devuelve todos los archivos que tocó el agente al estado que tenían en ese punto. Si el daño viene de antes del chat actual, o de comandos que el agente ejecutó en la terminal, tienes que ir a git: git restore descarta lo que no está confirmado y git revert deshace un commit. Claude Code tiene una red de seguridad parecida con /rewind.
En esta guía verás cada forma de volver atrás en el orden en que conviene probarlas, qué no puede deshacer ninguna y qué hábitos hacen que la próxima vez baste con un clic.
¿Qué hago antes de deshacer nada?
Detén al agente y deja de escribirle. Cada "arréglalo, por favor" suma cambios encima de los que ya rompieron algo, y encontrar el último estado bueno se vuelve más difícil.
Después responde tres preguntas:
- ¿Cuándo funcionó por última vez? Revisa el chat y ubica el último mensaje tras el cual la app todavía andaba. Si usas git,
git log --onelinete muestra los commits con sus mensajes. - ¿Qué cambió?
git statuslista los archivos modificados, nuevos y borrados.git diff --statmuestra cuántas líneas cambiaron en cada uno. Si una función pequeña tocó 25 archivos, el agente se fue por las ramas. - ¿Fue solo código? Busca en el chat comandos de terminal: instalación de paquetes, archivos movidos, migraciones o SQL. Eso requiere más cuidado, como verás más abajo.
¿Cómo restauro un checkpoint en Cursor?
El agente de Cursor crea checkpoints automáticamente antes de hacer cambios importantes durante una sesión. Cada uno guarda el estado de los archivos que el agente modificó.
- En el chat, busca el mensaje justo antes del cambio que rompió todo.
- Haz clic en su checkpoint en la línea de tiempo para ver cómo estaban los archivos, o pasa el cursor sobre el mensaje y usa Restore Checkpoint.
- Restaura. Los archivos vuelven atrás; la conversación se queda como está.
- Recarga la app y confirma que el problema desapareció antes de volver a pedirle algo.
Ojo con los límites. Según la documentación de checkpoints de Cursor, se guardan en tu equipo, separados de git, y sirven solo para deshacer cambios del agente. La documentación habla únicamente del estado de los archivos, así que no cuentes con ellos para revertir un npm install, una carpeta renombrada o un cambio en la base de datos. Tampoco son un historial en el que puedas confiar la semana que viene.
¿Cómo deshago cambios en Claude Code?
Escribe /rewind, o presiona Esc dos veces con el campo vacío, para abrir el menú. Elige el mensaje al que quieres volver y luego Restore code (solo el código), Restore conversation (solo la conversación) o Restore code and conversation (ambos).
Claude Code toma un checkpoint antes de cada mensaje tuyo y lo guarda con la conversación, así que /rewind funciona aunque retomes la sesión otro día. La documentación de checkpointing deja claros los huecos: los archivos que cambian comandos de shell (rm, mv, cp) no se registran, lo que editas fuera de Claude Code normalmente tampoco, y las copias viejas se eliminan pasados unos 30 días por defecto. Para todo lo que quede fuera, tu forma de deshacer es git.
¿Qué comando de git deshace cada cosa?
Si el proyecto está en git, estos comandos cubren casi todos los casos. Corre git status primero para saber qué vas a descartar.
| Qué pasó | Comando | Detalle |
|---|---|---|
| El agente editó archivos y quieres borrar todo lo que hizo | git restore . | Solo afecta cambios sin confirmar en archivos que git ya sigue |
| Un archivo quedó mal y el resto está bien | git restore src/pages/Checkout.tsx | Usa la ruta que aparece en git status |
| El agente creó archivos nuevos que sobran | git clean -n y luego git clean -f | -n muestra qué borraría. Los archivos ignorados, como .env, se quedan salvo que agregues -x |
| El agente hizo commit del cambio malo | git revert <commit> | Crea un commit nuevo que lo deshace. Es seguro aunque ya lo hayas subido |
| Quieres volver por completo a un commit anterior | git reset --hard <commit> | Reescribe el historial. Evítalo en ramas que otras personas ya descargaron |
| Hiciste reset y ahora te falta algo | git reflog | Muestra a dónde apuntó tu rama hace poco, para volver ahí |
Para probar un commit viejo antes de decidir, usa git switch --detach <commit>, arranca la app y revísala. Con git switch - regresas a donde estabas.
Una advertencia: git reset --hard y git restore borran para siempre el trabajo sin confirmar. git reflog recupera commits, no cambios que nunca se confirmaron.
¿Y si no tengo git ni checkpoint?
Aún quedan opciones, más o menos de mejor a peor:
- El historial local del editor. Los editores basados en VS Code guardan un historial de los archivos que guardas, visible en la vista Timeline del explorador. Solo incluye lo guardado desde el editor, no lo que cambiaron comandos de terminal.
- Una copia sincronizada. Si el proyecto viene de Lovable, Bolt u otra herramienta con sincronización a GitHub, el repositorio de allá tiene historial aunque tu carpeta local no.
- Los respaldos de tu computadora. Time Machine en macOS o el Historial de archivos en Windows, si estaban activos.
Cuando recuperes un estado que funcione, ejecuta git init y haz un primer commit antes de cualquier otra cosa.
¿Qué pasa con la base de datos?
Deshacer el código no deshace los datos. Si el agente corrió una migración que eliminó una columna o borró filas, al restaurar el código tendrás una app que espera datos que ya no existen. Revisa qué se ejecutó y mira los respaldos de tu proveedor antes de hacer más cambios. Nuestra guía sobre qué hacer si el agente de IA borró archivos o datos explica esa recuperación paso a paso.
¿Cómo hago que la próxima vez sea fácil volver atrás?
- Haz commit antes de cada tarea del agente. Un commit con un mensaje claro es un punto de restauración que no caduca.
- Una rama por tarea.
git switch -c agregar-facturasantes de empezar. Si sale mal, vuelves a tu rama y borras esa. - Pide cambios pequeños. Lo que puedes revisar en cinco minutos lo puedes deshacer en cinco segundos.
- Confirma cada paso que funciona. No esperes a terminar toda la función.
- Sube el código a GitHub. Tu laptop no es un respaldo.
- Pon los límites por escrito. Un archivo de reglas puede pedirle al agente que no corra migraciones ni borre archivos sin preguntarte. Mira cómo escribir reglas de Cursor para un proyecto real.
- Agrega algunas pruebas. Te dicen qué mensaje rompió qué. Empieza con pruebas para código generado con IA.
Respuestas rápidas
¿Restaurar un checkpoint de Cursor borra mi chat? No. Revierte los archivos y deja los mensajes, así que puedes seguir desde ahí con una mejor instrucción.
¿Un checkpoint deshace un npm install o una migración? No cuentes con eso. Cursor describe los checkpoints como copias de los archivos que modificó el agente, y Claude Code dice expresamente que no registra los cambios hechos por comandos de shell.
¿Es peligroso git reset --hard? Descarta para siempre los cambios sin confirmar y reescribe la rama. Para lo que ya subiste, mejor git revert.
¿Otros editores con agente funcionan igual? La mayoría tiene algún tipo de checkpoint o reversión, incluido Devin Desktop (antes Windsurf), pero cada uno con sus límites. Git se comporta igual en todos.
¿Sigue roto después de volver atrás?
A veces la última versión buena nunca se guardó, o el código y la base de datos ya no coinciden. Si estás ahí, en nuestras páginas de ayuda con proyectos de Cursor y de proyectos de Devin Desktop y Windsurf explicamos cómo lo resolvemos. Puedes pasar la app por la revisión gratuita para ver lo que se nota desde afuera, o contarnos qué pasó y una persona te responde en un día hábil.


