Lección 2.5.3: El historial y volver atrás
Lo que guardas con Git se puede mirar y recuperar: el historial, los cambios y cualquier versión anterior.
La idea
Guardar versiones sirve de algo si se pueden mirar y recuperar. Tres comandos:
git log: la lista de commits.git diff: qué has cambiado desde el último.git restore: volver atrás.
El historial
git log --oneline
7b1e0d4 (HEAD -> main) Añade la tabla del 3
3f2a1c9 Añade el saludo
- Cada commit tiene un identificador:
7b1e0d4. - El más reciente va arriba.
HEADmarca dónde estás.
Si la lista no cabe, Git la enseña por páginas: la tecla q sale.
Qué has cambiado
Cambia el texto de hola.js por «Adiós desde un archivo», guarda y:
git diff
diff --git a/hola.js b/hola.js
index 5c1b2a3..8d4e6f1 100644
--- a/hola.js
+++ b/hola.js
@@ -1 +1 @@
-console.log("Hola desde un archivo");
+console.log("Adiós desde un archivo");
Lo que importa son las últimas líneas: con -, lo que se quita; con +, lo que se pone.
Deshacer lo que no has guardado
git restore hola.js
El archivo vuelve a como estaba en el último commit.
Ojo: lo que no estaba en un commit se pierde, y esto no se deshace.
Recuperar una versión antigua
Con el identificador de un commit, trae el archivo tal como estaba entonces:
git restore --source=3f2a1c9 hola.js
El archivo cambia en tu carpeta. Si quieres quedarte con esa versión, haz un commit.
Pruébalo
Borra todo el contenido de tabla.js y guarda. Mira el cambio con git diff y recupera el archivo.
Ver la solución
git diff
git restore tabla.js
git status
git diff enseña todas las líneas con -. Después de git restore, git status vuelve a decir nothing to commit.
En resumen
git log --onelineenseña el historial; cada commit tiene un identificador.git diffenseña lo cambiado:-sale,+entra.git restore archivodescarta los cambios sin guardar, para siempre.git restore --source=id archivotrae una versión antigua.