4. Deshacer cambios no deseados

Descartar cambios preparados

Ahora supón que hemos decidido hacer que nuestro Hello, World! destaque. ¡Vamos a ponerlo como encabezado!

¿Cómo lo hacemos?

Para hacerlo, ¿por qué no envolvemos el contenido de hello.html en las etiquetas <head>? El resultado debería quedar así:

Archivo: hello.html
<head>Hello, World!</head>
Tarea
Completada

Envuelve el contenido de hello.html en las etiquetas <head> </head> y prepara los cambios.

Un momento... ¿He dicho etiquetas <head> </head>? Ay, perdón, claro que quería decir las etiquetas <h1> </h1>. Por desgracia, los cambios ya están preparados.

Vaya... ¿qué hacemos ahora?

Antes de tocar nada, ejecutemos rápidamente git status para ver qué está pasando.

CONSEJO MUY ÚTIL: Puedes usar las flechas y del teclado para moverte por tu historial de comandos en la terminal. Es una forma estupenda de no volver a escribir comandos.

Tarea
Completada

Ejecuta el comando git status para comprobar el estado del repositorio.

Deberías ver algo parecido a esto:

Resultado:

On branch main Changes to be committed:   (use "git restore --staged <file>..." to unstage)       modified: hello.html

Sigamos el consejo del propio comando y quitemos los cambios del área de preparación usando el comando git restore con la opción extra --staged.

Tarea
Completada

Ejecuta el comando git restore --staged . para limpiar el área de preparación.

Comprobemos el estado otra vez.

Tarea
Completada

Ejecuta el comando git status para comprobar el estado del repositorio.

La salida debería tener este aspecto:

Resultado:

On branch main Changes not staged for commit:   (use "git add <file>..." to update what will be committed)   (use "git restore <file>..." to discard changes in working directory)       modified: hello.html

no changes added to commit (use "git add" and/or "git commit -a")

¡Sorpresa! Los cambios siguen ahí. Pero al menos ya no están preparados para el commit.

¿Y ahora qué?

Para descartarlos por completo, podemos ejecutar el comando git restore sin ninguna opción (igual que hicimos en el paso anterior del curso).

Tarea
Completada

Ejecuta git restore . para limpiar el directorio de trabajo.

Comprobemos el estado otra vez.

Tarea
Completada

Ejecuta el comando git status para comprobar el estado del repositorio.

La salida debería tener este aspecto:

Resultado:

On branch main nothing to commit, working tree clean

¡Y ya está! Los cambios se han descartado y el directorio de trabajo vuelve a estar limpio.

De hecho, podríamos haber devuelto el directorio de trabajo a un estado limpio de una sola vez. El comando git restore funciona en dos modos: el modo predeterminado --worktree, que restaura el directorio de trabajo, y el modo --staged, que restaura el área de preparación. Podríamos haber usado ambas opciones a la vez para restaurar tanto el área de preparación como el directorio de trabajo así: git restore --staged --worktree ..

Next step
¿Quieres probar el modo historia?

Haz el curso como estaba pensado: progreso en pequeñas dosis, un orden lineal y sin distracciones, y entradas de Gitopedia que se desbloquean poco a poco. Continúa con Git real en VS Code/Cursor/Antigravity/Windsurf cuando quieras.

Modo historia
GRATIS
pero requiere iniciar sesión