4. Deshacer cambios no deseados

Descartar cambios locales

Ahora que hemos visto lo que ha hecho nuestro querido gato, restauremos el archivo hello.html a su último estado incluido en un commit. Podemos hacerlo con el comando

.

¿Cómo lo hacemos?

Ejecuta el siguiente comando en la terminal (incluyendo el punto al final del comando):

Ejecuta en la terminal:
git restore .

El carácter . en git restore . es una abreviatura del directorio actual. Al ejecutarlo así, el comando restaurará todos los archivos del directorio actual a su último estado incluido en un commit. Pero también podemos indicar un único archivo que restaurar, por ejemplo git restore hello.html, o incluso un directorio completo, como git restore some/path. Usar . es simplemente una forma cómoda de restaurarlo todo de una vez.

El comando git restore es una herramienta potente, pero también puede ser peligrosa si la usas sin cuidado. Descartará todos los cambios locales, así que úsala con cabeza. Si no tienes claro qué estás haciendo, es mejor usar git status para ver qué ha cambiado y git diff para ver las diferencias antes de decidir descartar nada.

Tarea
Completada

Descarta los cambios no intencionados con el comando git restore.

Después, ejecuta el comando git status para comprobar si el directorio de trabajo ha vuelto a estar limpio:

Tarea
Completada

Ejecuta git status para comprobar el estado del directorio de trabajo.

Si todo ha ido bien, deberías ver la siguiente salida:

Resultado:

On branch main nothing to commit, working tree clean

Tranquiliza, ¿verdad? Da igual qué cambios se hayan hecho: mientras no estén incluidos en un commit, siempre puedes descartarlos y volver al último estado bueno conocido.

Quienes llevamos más tiempo quizá recordemos el comando

, que se usaba para descartar cambios locales. Sigue existiendo, pero está desaconsejado en favor de git restore. El comando nuevo es más intuitivo y menos propenso a errores, así que conviene acostumbrarse a él.

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