Visualización del historial con git


Aprende a realizar la visualización del historial con (git log, git show, git diff)

oscar Escrito por oscar 10 April 2025 80 0

Como se ha mencionado en el post ¿Qué es Git y por qué usarlo?, Git es un sistema de control de versiones distribuido que permite gestionar cambios en el código de un proyecto. En este post exploraremos como podemos ver el historial de control de cambios que se ha realizado en un proyecto de prueba.

Antes de empezar

Recomiendo revisar la Instalación y Configuración de Git  para que pueda realizar correctamente el ejercicio que vamos a realizar.

Revisa y entiende los Estados de archivos en Git (git statusgit addgit commit) para que pueda ver los distintos cambios realizados.

🧠 Resumen visual

A continuacion encontrará un resumen de los comandos que vamos a trabajar con Git.

Comando ¿Qué muestra?
git log Historial completo de commits
git log --oneline Historial breve, una línea por commit
git log -p Historial con diferencias (diffs) incluidas
git show <commit> Detalles completos de un commit específico
git diff Cambios actuales no preparados (working directory)
git diff --staged Cambios que se han agregado con git add
git diff A B Diferencias entre dos commits o ramas

Crear un proyecto

Primero vamos a crear un proyecto, lo explico en Creación de un repositorio (git init) y clonación (git clone) donde vamos a realizar varias modificaciones y a realizar distintos commits con el objetivo de tener un gran historial.

Primero creamos el proyecto en un directorio que llamaremos historial-git

git init

Respuesta: Initialized empty Git repository in C:/code/historial-git/.git/

Procedemos a crear un archivo que llamaremos README.md y colocamos cualquier texto en el archivo. Procedemos a ver el estado del repositorio.

echo "primera linea de texto" > README.md

Vemos es estado con:

git status

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        README.md

nothing added to commit but untracked files present (use "git add" to track)

Hacemos el primer commit, primero añadimos el archivo nuevo para preparar el commit.

 git add .
git commit -a -m "primer commit"

Respuesta:

[master (root-commit) 9bb61b7] primer commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

Ahora, para esta practica realizamos varias modificaciones y varios commits a los archivos repitiendo los pasos anteriores, recomiendo al menos cinco commits, ejemplo:

  • git commit -a -m "Añadimos un texto"
  • git commit -a -m "Añadimos un comando"
  • git commit -a -m "Añadimos una formula"
  • git commit -a -m "Añadimos un subtitulo"
  • git commit -a -m "otra linea de texto"

Visualización del Historial en Git

🖥 git log

Muestra el historial de commits del repositorio.  

git log

Verás algo como esto:

$ git log
commit ea2e97477b60e460a0f242fbe68345c78cd96cf9 (HEAD -> master)
Author: ofernandezigeoerp <ofernandez@igeoerp.com>
Date:   Mon Apr 14 14:55:37 2025 -0500
    otra linea de texto

commit 141a6348a517f6a6c7f220226fa2a4ad922f5f7a
Author: ofernandezigeoerp <ofernandez@igeoerp.com>
Date:   Mon Apr 14 14:54:36 2025 -0500
    Añadimos un subtitulo

commit cd4bacd82020dc00a9128305de5a1adedc6f07b2
Author: ofernandezigeoerp <ofernandez@igeoerp.com>
Date:   Mon Apr 14 14:53:49 2025 -0500
    Añadimos una formula

commit e50b580eb5f8e0308ae47449de13dd84ca0b1f41
Author: ofernandezigeoerp <ofernandez@igeoerp.com>
Date:   Mon Apr 14 14:52:52 2025 -0500
    Añadimos un comando

commit 6c6992ff9cd0fbddcf3bb40a372758620787c025
Author: ofernandezigeoerp <ofernandez@igeoerp.com>
Date:   Mon Apr 14 14:52:26 2025 -0500
    Añadimos un texto

commit 2a7a45006b54752d0cf4f2353376849a56807635
Author: ofernandezigeoerp <ofernandez@igeoerp.com>
Date:   Mon Apr 14 14:42:13 2025 -0500
    primer commit

🔹 Opciones útiles

  • git log --oneline: muestra los commits en una sola línea.

  • git log --graph: dibuja un gráfico del árbol de commits.

  • git log -p: muestra los cambios (diffs) incluidos en cada commit.

  • git log --stat: muestra un resumen de qué archivos se modificaron y cuántas líneas cambiaron.

🖥 git show

Muestra el detalle de un commit específico, incluyendo el mensaje, autor, fecha y cambios realizados (diff).

git show cd4bacd82020dc00a9128305de5a1adedc6f07b2

Respuesta:

commit cd4bacd82020dc00a9128305de5a1adedc6f07b2
Author: ofernandezigeoerp <ofernandez@igeoerp.com>
Date:   Mon Apr 14 14:53:49 2025 -0500

    Añadimos una formula

diff --git a/README.md b/README.md
index 7cb9868..f39acce 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,4 @@

 Procedemos a agregar la primer linea
 Este es un comando git status

También puedes usarlo sin parámetro para ver el último commit:

git show

🖥 git diff

Compara cambios entre archivos, commits o ramas. Muy útil para ver diferencias antes de hacer commit o entre distintas versiones.

🔹 Ver cambios no staged (modificados pero no agregados con git add):

git diff 

🔹 Ver cambios staged (ya agregados con git add):

git diff --staged 

🔹 Comparar entre commits:

git diff commit1 commit2 

Ejemplo:

git diff 141a6348a517f6a6c7f220226fa2a4ad922f5f7a cd4bacd82020dc00a9128305de5a1adedc6f07b2

Respuesta:

diff --git a/README.md b/README.md
index 3d6f428..f39acce 100644
--- a/README.md
+++ b/README.md
@@ -3,5 +3,3 @@
 Procedemos a agregar la primer linea
 Este es un comando git status
 Añadimos una formula
-
-## Comandos git

🔹 Comparar ramas: para mas detalle de rama en el Creación y gestión de ramas con git

git diff main develop 

Comentario

Debe aceptar antes de enviar