Revisar con git lo que cambió la IA: del commit previo al diff y al commit final
Aprenderás un flujo mínimo para dejar un punto de referencia con git antes de que Claude Code modifique archivos y, después del trabajo, revisar los cambios reales con `git status` y `git diff`. Puedes pedir a la IA que explique el diff, pero el proceso se basa en que una persona compruebe el diff y los resultados de ejecución antes de hacer staging y commit directamente.
Contenido revisado 2026.09.22Instrucciones para copiar
Ver el índice
Para quién esUsuarios principiantes que quieren aprender un flujo mínimo de git para dejar un punto al que volver y un registro de revisión de los cambios creados por Claude Code
Preparación
Tener preparados expenses.csv, summarize.py y CLAUDE.md en la carpeta vibe-expenses
Tener Git instalado y poder ejecutar comandos git en la terminal
Entender la salida esperada y el método de verificación de la función `--by-category` del artículo anterior
01No confundir los checkpoints de la IA con git
Claude Code crea checkpoints automáticos con cada prompt y ofrece opciones para restaurar código o conversación mediante `/rewind`, pero la documentación oficial explica que esto no sustituye a un sistema de control de versiones como git. En particular, los archivos modificados por comandos Bash como rm, mv o cp, y los archivos cambiados directamente fuera de Claude Code, pueden quedar fuera del seguimiento o la restauración de los checkpoints. Por eso, en trabajos importantes conviene mantener un punto de referencia con git independientemente de las funciones de la IA.
Medio
Función en este artículo
Precaución
Checkpoint de Claude Code
Ayuda para revertir durante la sesión
No es un control de versiones que rastree todos los cambios externos
git commit
Registrar explícitamente el estado antes y después del trabajo
Una persona debe revisar qué archivos entrarán en el commit
git diff
Revisar los cambios reales línea por línea
El diff original es la referencia, no la explicación de la IA
Resultado de ejecución
Comprobar que la función se comporta según los requisitos
Aunque el diff sea pequeño, hay que verificar el resultado por separado
El objetivo de este artículo no es aprender todas las funciones de git. Usaremos únicamente el flujo mínimo de hacer un commit del estado previo, leer el diff después de los cambios de la IA, comprobar el resultado de ejecución y después hacer el commit final.
02Hacer un commit de referencia antes de delegar el trabajo a la IA
Si ya estás en un repositorio git, revisa primero el estado actual; si todavía no lo es, puedes inicializar el repositorio en la carpeta de práctica. El ejemplo siguiente registra como punto de referencia previo al trabajo los archivos creados hasta el artículo anterior. En un proyecto real, no añadas todos los archivos de forma automática: usa `git status` para comprobar qué se incluirá.
Instrucción
cd vibe-expenses
git init
git status --short
git add expenses.csv summarize.py CLAUDE.md
git diff --cached
git commit -m "Baseline before category summary"
Si es tu primer commit con git en este equipo, `git commit` puede detenerse porque no existe información del autor. En ese caso, configura una vez git config --global user.name "Nombre" y git config --global user.email "correo" y vuelve a hacer el commit. Si vas a publicar el repositorio, usa una dirección de correo que puedas hacer pública.
`git diff --cached` muestra los cambios que ya están en staging y que entrarían en el commit. En el primer commit la salida puede ser larga, pero al menos debes comprobar que no se haya incluido ningún archivo no previsto. En un repositorio de trabajo real, no añadas por descuido archivos sensibles como `.env`, archivos de claves o datos personales. Esta serie usa únicamente datos ficticios desde el principio.
03Encargar una sola función cada vez y limitar los archivos modificados
Este trabajo consiste en una sola función: añadir la opción `--by-category` a summarize.py. Al pedírselo a Claude Code, limita el alcance e indica que no haga al mismo tiempo otras refactorizaciones ni reorganizaciones de archivos. Cuanto más pequeño sea el cambio, más fácil será leer el diff y localizar la causa si aparece un problema.
Instrucción
Añade la opción `--by-category` únicamente a summarize.py.
No cambies el resultado de la ejecución básica y no modifiques expenses.csv ni CLAUDE.md.
No añadas paquetes externos.
Después de modificar, dime qué archivos has cambiado.
La documentación oficial de Claude Code indica que puedes preguntar en lenguaje natural por los archivos modificados, por ejemplo con «what files have I changed?». Sin embargo, no confirmes el alcance del cambio solo con la respuesta de la IA; en el paso siguiente revisa el estado real que muestra git.
04Leer primero git status y git diff personalmente
Cuando termine el trabajo, revisa primero los archivos modificados con `git status --short`. Si se cumplieron los requisitos, solo summarize.py debería aparecer modificado. Después, lee los cambios reales aún no confirmados con `git diff -- summarize.py`. Si miras solo el nombre del archivo y haces commit de inmediato, puedes pasar por alto una línea que la IA haya cambiado incorrectamente.
Instrucción
git status --short
git diff -- summarize.py
Comprobar que expenses.csv y CLAUDE.md no se hayan modificado de forma inesperada.
Comprobar que la lógica de salida mensual básica no se haya eliminado ni cambiado de significado.
Comprobar que la salida adicional se ejecute solo cuando se cumple la condición `--by-category`.
Comprobar que no se hayan añadido imports de paquetes no solicitados ni código que escriba archivos.
Si hay un cambio en el diff que no entiendes, preguntar la razón antes de hacer commit.
Aquí, git diff es la evidencia de lo que cambió realmente, mientras que la explicación de la IA es solo una ayuda para interpretar esa evidencia. Si ambas cosas no coinciden, toma como referencia el diff original y los archivos reales.
05Pedir a Claude que explique el diff sin mezclar explicación y cambios
Si no estás familiarizado con los diff, puedes pedir a Claude Code que explique los cambios actuales. En ese momento, no le pidas además nuevas modificaciones: si solicitas primero solo la explicación, la revisión no se mezclará con cambios adicionales.
Instrucción
Lee el git diff actual y explica qué cambió en summarize.py.
1) La parte que mantiene el comportamiento existente
2) La parte añadida para `--by-category`
3) Si existe código que modifique el CSV original
4) Si se usa algún paquete externo nuevo
Resume únicamente estos cuatro puntos. No modifiques más archivos por ahora.
Ejemplo editorial
[Ejemplo editorial · no es una respuesta real]
- Se mantiene el cálculo existente de los totales mensuales y la ejecución básica conserva el mismo formato.
- Se añadieron una estructura de acumulación por category y la condición `--by-category`.
- No se añadió código que escriba en el CSV de entrada.
- Se usa solo la biblioteca estándar de Python y no hay paquetes externos nuevos.
El contenido anterior no es el resultado de un diff leído realmente por Claude Code, sino un ejemplo editorial del formato de explicación. En un trabajo real, compara directamente cada explicación con las líneas de `git diff`.
06Hacer staging solo después de comprobar también la ejecución
Aunque el diff parezca correcto, comprobar el funcionamiento es una tarea independiente. Vuelve a ejecutar los dos comandos verificados en el artículo anterior para revisar la salida básica y la salida con opción. Como este artículo se centra en el flujo de git, no repetimos el código Python; mostramos solo los comandos de ejecución suponiendo que se usa el summarize.py ya verificado.
La ejecución básica debe producir 2026-09 = 26600 y 2026-10 = 9800. En la ejecución con opción debes comprobar para 2026-09 food 20500, transport 2900 y supplies 3200. Si los valores no coinciden, no hagas commit: revisa de nuevo el código o el archivo de entrada.
07Revisar por último el staged diff y hacer commit con un mensaje descriptivo
Una vez terminadas la revisión y la comprobación de ejecución, añade al staging solo los archivos modificados que correspondan. Después, usa `git diff --cached` para volver a revisar exactamente lo que entrará en el commit y, solo entonces, haz el commit. Aunque puedes pedir a Claude Code que haga el commit mediante lenguaje natural, para una persona principiante es preferible aprender primero el flujo de verificar personalmente qué archivos se incluirán.
La documentación oficial indica que puedes pedir un commit en lenguaje natural, por ejemplo con «commit my changes with a descriptive message». Aun usando esa función, se mantiene el mismo principio: revisar el diff y los archivos objetivo justo antes del commit. Si después del commit `git status --short` no muestra nada, no quedan cambios rastreados pendientes.
Momento
Comando o acción
Objetivo de la comprobación
Antes del trabajo
git commit
Crear un punto de referencia al que volver
Después del trabajo
git status --short
Comprobar el alcance de los archivos modificados
Revisión
git diff
Leer los cambios reales línea por línea
Comprobación funcional
Dos comandos de ejecución de Python
Comprobar que se mantiene la salida esperada
Antes del commit
git diff --cached
Revisión final de lo que entrará en el commit
Finalización
git commit
Registrar los cambios revisados como nuevo punto de referencia
Qué comprobar por tu cuenta
Redactado según la explicación sobre git y checkpoints de la documentación oficial de Claude Code, revisada el 2026-09-22 · No se afirma haber ejecutado realmente Claude Code ni los comandos git
Comprobar que el orden sea coherente: commit de referencia previo → status/diff después del trabajo → comprobación de ejecución → staged diff → commit
Revisar la sintaxis de `git status --short`, `git diff -- summarize.py`, `git diff --cached -- summarize.py` y `git commit -m`
Comprobar que se refleje la limitación indicada por la documentación oficial: los checkpoints de Claude Code no sustituyen a git
Comprobar que se indique que los cambios hechos mediante comandos Bash o fuera de Claude Code pueden quedar fuera de la restauración de checkpoints
Comprobar que el ejemplo de pedir a Claude una explicación del diff esté marcado como una respuesta no real
Comprobar que, al no incluir bloques de código Python en el cuerpo del artículo, no haya una ejecución de Python adicional que verificar en este artículo
Límites de la verificación
Este artículo no presenta un registro de haber creado realmente un repositorio git ni de haber encargado commits a Claude Code. Los comandos forman un ejemplo continuo con fines de aprendizaje; en un proyecto real debes comprobar por separado la política de ramas existente, `.gitignore` y la posible inclusión de información sensible.
Entendemos el vibe coding no como «decírselo con palabras y dejar que la IA lo haga todo», sino como una forma de trabajo en la que la persona define los requisitos y los criterios de comprobación y después revisa el resultado generado por la IA. Con una herramienta ficticia para sumar un CSV de gastos domésticos, organizamos en una sola nota la entrada, la salida, lo que no debe hacerse y cómo verificar el resultado.
Comprobamos el comando de instalación de Claude Code y las condiciones de cuenta según el sistema operativo, y comenzamos la primera sesión en una carpeta ficticia de práctica. En lugar de generar código de inmediato, hacemos solo tres preguntas para leer la carpeta y el CSV en modo plan y después cerramos la sesión de forma segura.
Practicamos el flujo para crear una primera herramienta pequeña en Python usando el expenses.csv ficticio y la nota de requisitos preparados antes. La solicitud incluye un ejemplo de entrada, la salida esperada y las restricciones, y después ejecutamos el summarize.py terminado en la herramienta Python del chat de GPT, no en Claude Code, para comprobar el resultado.
Organizamos de forma breve en el CLAUDE.md del proyecto el comando de ejecución, las reglas de datos, las prohibiciones y la forma de comprobar resultados que antes se repetían en cada solicitud. Distinguimos la función de `/init` para crear un borrador y el propósito de cada ubicación de archivo, y terminamos un archivo de reglas de 35 líneas adaptado al ejemplo del CSV de gastos.
A partir del ejemplo de añadir la opción `--by-category` a una herramienta ya funcional que suma gastos por mes, aprenderás a revisar primero el plan de cambios en el modo plan de Claude Code. Antes de implementar, fijarás el alcance de la modificación y el formato de salida; después de aprobar el plan, ejecutarás el código final para comprobar tanto los totales mensuales existentes como los totales por categoría.
En lugar de limitarte a decirle a la IA que «da error», practicarás un flujo en el que primero reproduces el problema con la misma entrada, acotas la causa a partir del mensaje de excepción real y solicitas solo el cambio mínimo. Usaremos un CSV cuyo amount contiene una coma para reproducir un ValueError en Python y volveremos a ejecutar el código corregido para comprobar el resultado.
Partiendo de que Claude Code puede leer y modificar archivos y ejecutar comandos, este artículo reúne las comprobaciones de seguridad que una persona principiante debe hacer antes, durante y después del trabajo. Conecta en una sola lista las diferencias entre modos de permiso, los cambios que los checkpoints no pueden restaurar, la diferencia de función respecto de git y la regla de no introducir información secreta.