6. Historial

Comprobar diferencias entre commits

Antes hemos usado git log para ver el historial general del repositorio. Pero a menudo querrás ver los commits que han afectado a un archivo concreto.

Por ejemplo, si detectas un trozo de código raro en uno de tus archivos y quieres ver quién hizo ese cambio y por qué, lo primero será mirar el historial de ese archivo en particular. Puedes hacerlo con el comando git log seguido de la ruta del archivo, por ejemplo, git log hello.html.

Tarea
Completada

Comprueba el historial del archivo hello.html usando el comando anterior.

Consejo: Recuerda que puedes desplazarte por la salida de git log con las teclas de flecha y del teclado. Para salir del modo pager, pulsa q.

Ahora hagamos lo mismo con el archivo style.css.

Tarea
Completada

Comprueba el historial del archivo style.css.

Como ves, solo se muestran los commits que han afectado al archivo indicado. Esto es muy útil cuando quieres ver cómo ha cambiado un archivo concreto con el tiempo. Ahora, ¿cómo comparas los cambios concretos entre dos commits?

Vamos a verlo

Ya hemos usado git diff para comprobar qué cambios hemos hecho en el directorio de trabajo respecto al área de staging o al último commit. Ahora vamos a ver cómo comparar dos commits cualesquiera del repositorio.

Por ejemplo, veamos qué ha cambiado en el archivo hello.html desde la versión 1.0 (creamos la etiqueta 1.0 en el capítulo Etiquetas y ramas, ¿recuerdas?).

Para comparar dos commits, podemos usar el comando git diff seguido de dos referencias a commits, como git diff <from> <to>. El orden importa: Git mostrará qué tendrías que cambiar en el primero para llegar al segundo. Si pasas una sola referencia, Git comparará ese commit con el directorio de trabajo.

No olvides que hay varias formas de referenciar commits: sus hashes, etiquetas, nombres de ramas o referencias relativas como HEAD~1.

¡Entendido!

Vamos a comparar la versión 1.0 del archivo hello.html con su estado en el último commit. Puedes hacerlo con este comando:

Ejecuta en la terminal:
git diff 1.0 HEAD
Tarea
Completada

Ejecuta el comando anterior para comparar esos commits.

Consejo: Cuando la salida de git diff no cabe en una pantalla, la terminal entrará en modo pager. Igual que antes, puedes desplazarte por la salida con las teclas de flecha y del teclado. Para salir del modo pager, pulsa q.

La parte importante debería tener este aspecto. Git mostrará hashes reales de las versiones de archivo comparadas en la línea index; este ejemplo usa <old> y <new>:

Resultado:
diff --git a/hello.html b/hello.html
index <old>..<new> 100644
--- a/hello.html
+++ b/hello.html
@@ -1,4 +1,7 @@
 <html>
+ <head>
+ <link rel="stylesheet" href="style.css"/>
+ </head>
     <body>
         <h1>Hello, World!</h1>
     </body>
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..<new>
--- /dev/null
+++ b/style.css
@@ -0,0 +1,3 @@
+h1 {
+ color: red;
+}
\ No newline at end of file

La salida muestra los cambios entre estos dos commits: las líneas que se han eliminado (marcadas con -) y las líneas que se han añadido (marcadas con +).

Next step
¿Quieres probar el modo historia?

Haz el curso como se pensó: avanza poco a poco y en orden, sin distracciones, mientras desbloqueas nuevas entradas de Gitopedia. Cuando quieras, continúa practicando con Git de verdad en VS Code, Cursor o Antigravity IDE.

Modo historia
GRATIS
pero requiere iniciar sesión