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.
Cristian Escalante
Última actualización: 19 de abril de 2025
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
- Usa mensajes de commit descriptivos: Facilita la búsqueda y comprensión del historial
- Haz commits atómicos: Cada commit debe representar un cambio lógico único
- Usa convenciones en los mensajes: Como Conventional Commits (
feat:
,fix:
, etc.) - Revisa el historial antes de hacer push: Asegúrate de que tus commits tienen sentido
- 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.