Comprobar diferencias entre commits
Antes usamos git log para ver el historial general del repositorio. Pero a menudo querrás ver los commits que afectaron 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.
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.
Comprueba el historial del archivo style.css.
Como ves, solo se muestran los commits que afectaron 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 reales entre dos commits?
Ya hemos usado git diff para comprobar qué cambios hicimos en el directorio de trabajo frente al área de preparación o al último commit. Ahora vamos a ver cómo comparar dos commits cualesquiera del repositorio.
Por ejemplo, veamos qué cambió en el archivo hello.html desde la versión 1.0 (creamos la etiqueta 1.0 en el capítulo sobre etiquetas de Git, ¿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 primer commit para llegar al segundo. Si pasas una sola referencia a un commit, lo compararás 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, etc.
Vamos a comparar la versión 1.0 del archivo hello.html con su estado en el último commit. Puedes hacerlo con este comando:
git diff 1.0 HEADEjecuta 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.
Deberías ver algo parecido a esto:
diff --git a/hello.html b/hello.htmlindex ae7ab8c..7833e8a 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.cssnew file mode 100644index 0000000..d224431--- /dev/null+++ b/style.css@@ -0,0 +1,3 @@+h1 {+ color: red;+}\ No newline at end of fileLa salida muestra los cambios entre estos dos commits: las líneas que se eliminaron (marcadas con -) y las líneas que se añadieron (marcadas con +).
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.
pero requiere iniciar sesión