Trabajar con un agente de IA usando Git

Un agente puede cambiar diez ficheros en un minuto. Para usarlo con tranquilidad: commit y rama antes, encargo con límites, revisión del diff y cómo deshacer lo que no quieres.

Antes de pedirle nada a un agente, deja el proyecto en un commit limpio y crea una rama solo para ese encargo.

Un buen encargo es pequeño y tiene límites: qué ficheros puede tocar, qué no debe hacer y cuándo está terminado.

Revisa siempre el diff: primero qué ficheros cambiaron (git diff --stat) y después las líneas, fichero a fichero.

Puedes quedarte con una parte y descartar otra (git restore), o tirar la rama entera.

  • Un chat te devuelve texto; un agente edita tus ficheros.
  • Con un chat tú decides qué copias. Con un agente (el modo agente de Copilot, Claude Code, Codex, Cursor…) el encargo se ejecuta directamente en tu proyecto: lee ficheros, los edita, crea otros nuevos y puede lanzar comandos en la terminal.
  • Ahorra mucho trabajo, pero también puede dejarte un proyecto que ya no entiendes. Para evitarlo, trabaja de forma que cada cambio se pueda ver y deshacer. Para eso está Git.
  • Dos comandos para poder deshacer lo que haga el agente.
  • Comprueba que no tienes cambios a medias con git status. Si los hay, haz commit (o guárdalos con git stash). Así sabrás que todo lo que cambie a partir de ahora lo ha hecho el agente.

Qué cambia con un agente

Un chat te devuelve texto; un agente edita tus ficheros.

Con un chat tú decides qué copias. Con un agente (el modo agente de Copilot, Claude Code, Codex, Cursor…) el encargo se ejecuta directamente en tu proyecto: lee ficheros, los edita, crea otros nuevos y puede lanzar comandos en la terminal.

Ahorra mucho trabajo, pero también puede dejarte un proyecto que ya no entiendes. Para evitarlo, trabaja de forma que cada cambio se pueda ver y deshacer. Para eso está Git.

Antes de pedir nada: commit limpio y rama nueva

Dos comandos para poder deshacer lo que haga el agente.

Comprueba que no tienes cambios a medias con git status. Si los hay, haz commit (o guárdalos con git stash). Así sabrás que todo lo que cambie a partir de ahora lo ha hecho el agente.

Después crea una rama para el encargo: git switch -c ia/menu-movil. Si el resultado no te convence, borras la rama y main sigue intacta. El prefijo ia/ te recuerda después qué ramas salieron de un agente.

Un encargo pequeño y con límites

Cuanto más concreto sea, menos sorpresas habrá en el diff.

Revisar el diff: primero el mapa, después las líneas

El diff muestra exactamente qué ha cambiado.

Empieza por git diff --stat: te dice qué ficheros cambiaron y cuántas líneas. Si aparece uno que no estaba en el encargo (un package.json, el HTML que dijiste que no tocara), ya sabes dónde mirar primero.

Después revisa fichero a fichero con git diff ruta/al/fichero, o en VS Code en el panel Control de código fuente, que muestra el antes y el después lado a lado. Las líneas con + son nuevas; las de -, eliminadas.

Busca especialmente: ficheros que no pediste, bloques grandes borrados, dependencias nuevas, claves o URLs que no reconoces y código que repite algo que ya existía. Y aplica lo de la lección de PRIMM: si no puedes explicar una línea, esa línea no entra.

Quedarte con una parte o volver atrás

Puedes quedarte con lo que sirve y descartar el resto.

  • Descartar un fichero que no querías que tocara: git restore package.json.
  • Descartar todo lo que hay sin commit: git restore ..
  • Tirar el encargo entero: git switch main y git branch -D ia/menu-movil.
  • Deshacer algo ya confirmado sin reescribir la historia: git revert <commit>.
  • Quedarte con el resultado: haz tú el commit, con un mensaje que lo diga (feat: menú móvil accesible (con agente, revisado)), y fusiona la rama.

Permisos: el agente actúa con los tuyos

No apruebes comandos que no entiendes.

Los agentes suelen pedir permiso antes de ejecutar comandos. Esa pausa es tu control: lee el comando antes de aceptar. Instalar un paquete que no pediste, borrar con rm -rf, hacer git push --force o tocar ficheros fuera de la carpeta del proyecto son motivos para decir que no y preguntar por qué.

Evita los modos que aprueban todo automáticamente hasta que domines el flujo, y nunca le des al agente claves de producción: si las necesita, es que la tarea no es para él.

IA para programar
05

Trabajar con un agente de IA usando Git

Un agente puede cambiar diez ficheros en un minuto. Para usarlo con tranquilidad: commit y rama antes, encargo con límites, revisión del diff y cómo deshacer lo que no quieres.

Código del tema: git switch -c · git diff · git restore

📘 Teoría

Qué cambia con un agente

Un chat te devuelve texto; un agente edita tus ficheros.

Con un chat tú decides qué copias. Con un agente (el modo agente de Copilot, Claude Code, Codex, Cursor…) el encargo se ejecuta directamente en tu proyecto: lee ficheros, los edita, crea otros nuevos y puede lanzar comandos en la terminal.

Ahorra mucho trabajo, pero también puede dejarte un proyecto que ya no entiendes. Para evitarlo, trabaja de forma que cada cambio se pueda ver y deshacer. Para eso está Git.

Antes de pedir nada: commit limpio y rama nueva

Dos comandos para poder deshacer lo que haga el agente.

Comprueba que no tienes cambios a medias con git status. Si los hay, haz commit (o guárdalos con git stash). Así sabrás que todo lo que cambie a partir de ahora lo ha hecho el agente.

Después crea una rama para el encargo: git switch -c ia/menu-movil. Si el resultado no te convence, borras la rama y main sigue intacta. El prefijo ia/ te recuerda después qué ramas salieron de un agente.

Un encargo pequeño y con límites

Cuanto más concreto sea, menos sorpresas habrá en el diff.

1

Tarea

Una sola cosa, descrita como resultado: «El botón ☰ abre y cierra el menú en móvil y actualiza aria-expanded».

2

Qué puede tocar

Los ficheros concretos: «Solo js/menu.js y css/menu.css».

3

Qué no debe hacer

«No cambies el HTML, no instales dependencias, no borres ficheros, no hagas commit ni push».

4

Cuándo está terminado

Una comprobación observable: «Funciona con teclado (Tab + Intro) y la consola no muestra errores».

Revisar el diff: primero el mapa, después las líneas

El diff muestra exactamente qué ha cambiado.

Empieza por git diff --stat: te dice qué ficheros cambiaron y cuántas líneas. Si aparece uno que no estaba en el encargo (un package.json, el HTML que dijiste que no tocara), ya sabes dónde mirar primero.

Después revisa fichero a fichero con git diff ruta/al/fichero, o en VS Code en el panel Control de código fuente, que muestra el antes y el después lado a lado. Las líneas con + son nuevas; las de -, eliminadas.

Busca especialmente: ficheros que no pediste, bloques grandes borrados, dependencias nuevas, claves o URLs que no reconoces y código que repite algo que ya existía. Y aplica lo de la lección de PRIMM: si no puedes explicar una línea, esa línea no entra.

Quedarte con una parte o volver atrás

Puedes quedarte con lo que sirve y descartar el resto.

  • Descartar un fichero que no querías que tocara: git restore package.json.
  • Descartar todo lo que hay sin commit: git restore ..
  • Tirar el encargo entero: git switch main y git branch -D ia/menu-movil.
  • Deshacer algo ya confirmado sin reescribir la historia: git revert <commit>.
  • Quedarte con el resultado: haz tú el commit, con un mensaje que lo diga (feat: menú móvil accesible (con agente, revisado)), y fusiona la rama.

Permisos: el agente actúa con los tuyos

No apruebes comandos que no entiendes.

Los agentes suelen pedir permiso antes de ejecutar comandos. Esa pausa es tu control: lee el comando antes de aceptar. Instalar un paquete que no pediste, borrar con rm -rf, hacer git push --force o tocar ficheros fuera de la carpeta del proyecto son motivos para decir que no y preguntar por qué.

Evita los modos que aprueban todo automáticamente hasta que domines el flujo, y nunca le des al agente claves de producción: si las necesita, es que la tarea no es para él.

🧪 Aprende probando

Ejemplo Ejemplo guiado: el flujo completo, de principio a fin Lee la secuencia comentada: es lo que harías en la terminal de VS Code en un encargo real.
⌄

🏁 Retos

Reto Reto 1: el agente tocó de más Tu encargo era cambiar solo css/tarjeta.css, pero el diff muestra también index.html y package.json. Escribe los comandos.
⌄
Reto Reto 2: escribe un encargo con límites Convierte el encargo vago en uno que un agente pueda cumplir sin salirse.
⌄

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com