Deshacer y recuperar una modificación
Para deshacer la última modificación de Claude Code en la sesión en curso, abre el menú de puntos de reanudación con /rewind en lugar de pasar primero por Git. Git sigue siendo la herramienta para lo que esos puntos ignoran: las modificaciones de un comando bash, las ediciones de un subagente en segundo plano y los archivos enlazados.
Deshacer la última modificación de Claude Code en la sesión en curso ya no pasa, en primer lugar, por Git. El menú de puntos de reanudación, abierto por /rewind o una doble pulsación de Escape cuando la línea de entrada está vacía, propone tres opciones distintas: restaurar el código y la conversación, solo la conversación, o solo el código, hasta un instante anterior de la misma sesión. Pedirle en lenguaje natural a Claude Code que deshaga su última modificación activa este mismo mecanismo. Este camino cuesta menos que un rodeo por Git para una acción todavía reciente: sin commit que buscar, sin rama que recrear, solo un retorno inmediato en la misma sesión.
Lo que el sistema de puntos de reanudación no sigue
La documentación oficial acota ella misma su alcance: este sistema no es un reemplazo del control de versiones, y para un historial permanente o el trabajo en equipo, recomienda seguir usando Git, para los commits, las ramas y el historial a largo plazo. Se añaden tres límites concretos, cada uno correspondiente a un trabajo que Claude Code no hizo él mismo con sus propias herramientas de edición. Las modificaciones hechas por un comando bash, rm, mv o cp, no se siguen: solo las ediciones pasadas por las herramientas de edición de archivos de Claude lo son. Las ediciones hechas por un subagente en segundo plano también escapan a la restauración. Un archivo enlazado por un enlace simbólico o un enlace físico se ignora durante una restauración.
Git sigue siendo la herramienta para lo que los puntos de reanudación ignoran
git restore retira una modificación no confirmada del directorio de trabajo. git reflog encuentra cualquier posición anterior de HEAD, incluido un commit que parece perdido después de un reset mal hecho.
git reflog
# muestra cada posición de HEAD, la más reciente primero
git branch securite <hachage-retrouve>
# recrea una rama desde un estado encontrado, sin tocar la rama en curso
Recrear una rama desde un hash encontrado en el reflog sigue siendo preferible a un git reset --hard: el reset sobrescribe el estado actual, la rama de seguridad lo conserva aparte sin perder nada. Esta misma distinción entre un retroceso y un borrado definitivo se encuentra, aplicada a una conversación entera en lugar de a un archivo, en bucles, contexto contaminado y reinicio.
Un caso reciente: sed -i
Desde octubre de 2026, sed -i sigue el aviso estándar de Bash y se ejecuta tal cual, en lugar de mostrar una vista previa simulada de edición de archivo. Como las demás modificaciones hechas por Bash, ya no lo restaura /rewind: una edición pasada por el shell se recupera con Git, no con los puntos de control.
De la modificación indeseada a la rama de seguridad
Un desarrollador constata que una modificación aplicada por Claude Code cinco minutos antes rompe un test. Abre el menú de puntos de reanudación con una doble pulsación de Escape y selecciona la opción que restaura solo el código, hasta el instante anterior a esa modificación.
Escribe en una frase lo que esta situación establece, y en una frase lo que no establece.
Lo que esto establece: El desarrollador usó el menú de puntos de reanudación para restaurar el código a un instante anterior a la modificación sospechosa, sin pasar por un comando Git.
Lo que esto no establece: Esto no establece que la modificación deshecha fuera la causa real del fallo del test, ni que ese mismo retroceso hubiera funcionado si la modificación se hubiera hecho con un comando bash en lugar de con una herramienta de edición de Claude.
Los tres calibrados falsos más frecuentes
- Demasiado amplio El menú de puntos de reanudación ahora restaura cualquier modificación hecha durante la sesión, sea cual sea su origen.
- Demasiado estrecho Esta restauración no prueba nada, ya que solo afectó al código y no a la conversación.
- Fuera de tema Esta situación muestra que el test roto había sido escrito antes de la modificación aplicada por Claude Code.
- El menú de puntos de reanudación, abierto por /rewind o un doble Escape, restaura el código y la conversación, solo la conversación, o solo el código, hasta un instante anterior de la misma sesión.
- Desde octubre de 2026, sed -i se ejecuta como cualquier comando Bash y /rewind ya no lo restaura, pues no deshace las ediciones hechas por el shell.
- Las modificaciones hechas por un comando bash como rm, mv o cp, las ediciones de un subagente en segundo plano, y los archivos enlazados por un enlace simbólico o físico escapan todos a una restauración por puntos de reanudación.
- git restore retira una modificación no confirmada del directorio de trabajo, git reflog encuentra cualquier posición anterior de HEAD, incluido un commit aparentemente perdido.
- Recrear una rama desde un hash encontrado en el reflog conserva el estado actual aparte, mientras que un git reset --hard lo sobrescribe.
Antes de cualquier git reset --hard en tu repositorio, lanza git reflog, localiza el hash del estado que quieres conservar, y crea una rama de seguridad desde ese hash antes de continuar.
Cada afirmación datable de esta lección remite aquí al texto público que la respalda. Una fuente que no se abre no prueba nada.
- Claude Code, puntos de reanudación, rewind, alcance y límites frente a Git consultée le 2026-09-02
- Git, documentación oficial del comando restore consultée le 2026-09-02
- Git, documentación oficial del comando reflog consultée le 2026-09-02
- Registro de cambios de Claude Code: sed -i y /rewind consultée le 2026-10-24