Tema 5: Deshacer ediciones y corregir el último commit
Primero decide qué quieres deshacer. git restore README.md recupera el archivo de trabajo desde el índice. Si no habías preparado la edición, se pierde. Si habías preparado otra copia, recuperas precisamente esa copia: el índice no cambia.
git restore --staged README.md hace otra cosa: devuelve el índice a la versión del último commit y mantiene tu edición en el trabajo. Sirve para quitar un archivo de la selección sin perder su texto. Después puedes revisar status, preparar de nuevo y crear el commit correcto.
Antes de restore se utilizaba git checkout -- README.md para restaurar el trabajo. Para quitar un archivo del índice es frecuente encontrar git reset README.md. Son referencias para reconocer instrucciones antiguas; el curso prioriza restore para expresar cada intención con claridad. Los modos completos de reset se estudiarán en el curso intermedio.
git commit --amend -m "Mensaje corregido" sustituye el último commit de la rama por otro. Puede corregir el mensaje y también incorporar el contenido que hayas preparado. El identificador cambia, aunque el número de commits alcanzables de esa línea no aumente. El commit anterior puede seguir existiendo internamente; el historial de la rama apunta al reemplazo.
Si solo quieres añadir un archivo olvidado manteniendo el mensaje, prepara el contenido y usa git commit --amend --no-edit. En estas prácticas corregimos commits locales que todavía no se han compartido. Reescribir versiones compartidas necesita coordinación; se trabajará más adelante.
Comandos para probar #
1git status 2git restore README.md 3git restore --staged app.txt 4git commit --amend -m "Corrige el saludo" 5git log
Error que conviene evitar #
Usar restore sin --staged esperando conservar una edición sin preparar. La restauración puede descartar ese contenido; identifica el área que quieres cambiar.
Laboratorio local #
Prueba los comandos y observa qué cambia. Puedes reiniciar sin guardar una entrega. Los retos evaluables y el cuestionario están en las actividades de este tema.
Git / práctica local
Descarta solo lo necesario
Aplicar edición cambia el archivo; git add lo prepara.
Historial de commits
Cada punto representa una versión guardada.
- 0000001: Commit inicial; main
Comparar trabajo, índice y última versión
Trabajo
Cambio que descartar
Índice (staging)
# Mi proyecto
Última versión
# Mi proyecto
TERMINAL
Sesión local preparada. Escribe help para consultar los comandos de este tema.
Comandos disponibles y límites
git --version · git config --global <clave> [valor] git init · git status git add <archivo | .> · git commit -m "mensaje" · git log git log --oneline · git switch <rama> (antes: checkout) git restore [--staged] <archivo> · git commit --amend [-m "mensaje" | --no-edit] help · clear
Sesión en memoria: recargar descarta la práctica. Doscientas acciones como máximo. Dos archivos editables de hasta 250 líneas. El modelo no ejecuta comandos reales ni realiza conexiones externas.
Resumen
- Restaura desde la copia preparada, no necesariamente desde el último commit.
- Solo cambia la selección del índice.
- El reemplazo tiene un identificador nuevo.
- Usar restore sin --staged esperando conservar una edición sin preparar. La restauración puede descartar ese contenido; identifica el área que quieres cambiar.