HDP115

Ver el historial de cambios

Aprende a utilizar el comando git log y sus variantes para explorar el historial de cambios en tu repositorio Git, filtrar commits y visualizar la evolución del proyecto.

CE

Cristian Escalante

Última actualización: 19 de abril de 2025

git
control de versiones
desarrollo

Ver el historial de cambios

Una de las grandes ventajas de usar un sistema de control de versiones como Git es poder revisar el historial completo de cambios realizados en un proyecto. Git proporciona herramientas poderosas para explorar este historial, permitiéndote entender cómo ha evolucionado tu código, quién ha realizado cambios específicos y cuándo se implementaron.

El comando git log

El comando principal para ver el historial de cambios en Git es git log. En su forma más básica, muestra una lista de commits en orden cronológico inverso (del más reciente al más antiguo):

git log

La salida incluye:

  • El hash completo del commit
  • El autor (nombre y correo electrónico)
  • La fecha y hora del commit
  • El mensaje completo del commit

Ejemplo de salida:

commit 8d1c8b69c3fda336ba26b19a09f30e7c11b2defa
Author: Juan Pérez <juan@example.com>
Date:   Mon Apr 12 15:30:45 2025 -0500

    Implementa autenticación con Google OAuth
    
    - Añade configuración para API de Google
    - Implementa flujo de autenticación OAuth
    - Actualiza documentación de autenticación

Opciones comunes de git log

Formato simplificado

Para ver una versión más compacta del historial:

git log --oneline

Salida:

8d1c8b6 Implementa autenticación con Google OAuth
a7d3f1c Corrige bug en formulario de registro
5e7f2d9 Añade validación de campos en frontend

Ver un número específico de commits

git log -n 5  # Muestra los últimos 5 commits

Ver cambios con diferencias

Para ver también los cambios introducidos en cada commit:

git log -p  # o --patch

Mostrar estadísticas

Para ver estadísticas sobre los archivos modificados:

git log --stat

Salida:

commit 8d1c8b69c3fda336ba26b19a09f30e7c11b2defa
Author: Juan Pérez <juan@example.com>
Date:   Mon Apr 12 15:30:45 2025 -0500

    Implementa autenticación con Google OAuth

 src/auth/google.js       | 45 ++++++++++++++++++++++
 src/config/oauth.js      | 15 ++++++++
 docs/authentication.md   | 30 +++++++++++++++
 3 files changed, 90 insertions(+)

Formato personalizado

Puedes personalizar el formato de salida:

git log --pretty=format:"%h - %an, %ar : %s"

Donde:

  • %h: Hash abreviado
  • %an: Nombre del autor
  • %ar: Fecha relativa
  • %s: Asunto (primera línea del mensaje)

Salida:

8d1c8b6 - Juan Pérez, 2 days ago : Implementa autenticación con Google OAuth
a7d3f1c - María García, 3 days ago : Corrige bug en formulario de registro
5e7f2d9 - Carlos López, 5 days ago : Añade validación de campos en frontend

Visualización gráfica

Para ver una representación gráfica de las ramas y merges:

git log --graph --oneline --all

Filtrar el historial

Por autor

git log --author="Juan"

Por fecha

git log --since="2025-04-01" --until="2025-04-15"
# O usando lenguaje natural
git log --since="2 weeks ago"

Por mensaje

git log --grep="bug"  # Busca commits que contengan "bug" en el mensaje

Por contenido

git log -S"función login"  # Busca commits que añadan o eliminen la cadena "función login"

Por archivo

git log -- archivo.js  # Muestra commits que afectan a archivo.js

Por rango de commits

git log main..feature  # Commits en la rama feature que no están en main

Visualizaciones avanzadas

Ver el historial de un archivo específico

git log --follow -p -- archivo.js

La opción --follow permite seguir el historial incluso si el archivo fue renombrado.

Ver quién modificó cada línea (blame)

git blame archivo.js

Muestra quién modificó cada línea del archivo, cuándo y en qué commit.

Ver un commit específico

git show 8d1c8b6  # Usando el hash (completo o abreviado)

Ver diferencias entre commits

git diff 5e7f2d9..8d1c8b6  # Diferencias entre dos commits

Herramientas gráficas

Aunque la línea de comandos es poderosa, muchas personas prefieren herramientas gráficas para visualizar el historial:

  • GitKraken: Interfaz gráfica que muestra el historial como un grafo visual
  • Sourcetree: Visualización detallada del historial con interfaz amigable
  • Visual Studio Code: Con extensiones como GitLens
  • GitHub Desktop: Visualización simplificada del historial
  • git log con opciones como --graph --oneline --all --decorate

Casos de uso comunes

Investigar cuándo se introdujo un bug

# Buscar commits que modificaron la función problemática
git log -p -S "nombreDeFunción" -- archivo.js

# O usar bisect para encontrar automáticamente el commit problemático
git bisect start
git bisect bad  # Marca el commit actual como "malo"
git bisect good 5e7f2d9  # Marca un commit anterior como "bueno"
# Git te ayudará a encontrar el commit exacto que introdujo el problema

Revisar cambios recientes en una característica

git log --since="1 week ago" --grep="feature-name"

Ver la evolución de un archivo

git log --follow --oneline -p -- archivo.js

Comparar cambios entre ramas

git log --graph --oneline --all main feature-branch

Buenas prácticas

  1. Usa mensajes de commit descriptivos: Facilita la búsqueda y comprensión del historial
  2. Haz commits atómicos: Cada commit debe representar un cambio lógico único
  3. Usa convenciones en los mensajes: Como Conventional Commits (feat:, fix:, etc.)
  4. Revisa el historial antes de hacer push: Asegúrate de que tus commits tienen sentido
  5. Usa tags para marcar versiones: Facilita encontrar puntos importantes en el historial

Conclusión

Dominar las herramientas para explorar el historial de Git te permite aprovechar al máximo el sistema de control de versiones. Ya sea para depurar problemas, entender la evolución del código o revisar el trabajo de otros colaboradores, los comandos como git log y sus variantes son esenciales para cualquier desarrollador que trabaje con Git.

El historial de cambios es como la "memoria institucional" de tu proyecto, y saber cómo consultarla de manera efectiva te ahorrará tiempo y te ayudará a tomar mejores decisiones de desarrollo.

Hacer commit
Aprende a confirmar cambios en tu repositorio Git utilizando...
Ignorar archivos con .gitignore
Aprende a utilizar el archivo .gitignore para excluir archiv...
Referencias
Git. Git - git-log Documentation. https://git-scm.com/docs/git-log
Scott Chacon and Ben Straub. Pro Git Book - Viewing the Commit History. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos SQL

Aprende los conceptos básicos de SQL

Conceptos Básicos de Python

Aprende los conceptos básicos de Python

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025