git log
Mostrar el historial de commits
El comando 'git log' muestra el historial de commits de tu repositorio. Los presenta en orden cronológico inverso (primero los más recientes), con el hash, el autor, la fecha y el mensaje. Con sus opciones puedes adaptar el formato de salida, filtrar commits y seguir el historial de un archivo. Imprescindible para entender la historia del proyecto y encontrar cambios concretos.
Sinopsis
git log [<options>] [<revision-range>] [[--] <path>...]Opciones
Elegir la opción adecuada
Formatos de salida del log
Elige el formato adecuado para lo que necesitas
| Comando | Muestra | Nivel de detalle | Ideal para |
|---|---|---|---|
git log | Todos los detalles | Alto | Revisión detallada |
git log --oneline | Hash + mensaje | Bajo | Vistazo rápido |
git log --stat | Archivos cambiados por commit | Media | Ver el alcance de los cambios |
git log -p | Diff completo | Muy alta | Revisión de código |
Filtrar commits
Encontrar commits concretos en el historial
| Comando | Filtrar por | Ejemplo |
|---|---|---|
--author | Persona que escribió el commit (autor; usa --committer para quien hizo el commit) | --author="John" |
--since/--until | Rango de fechas | --since="2024-01-01" |
--grep | Mensaje del commit | --grep="fix" |
-- <path> | Archivos cambiados | -- src/app.js |
Log frente a reflog
Saber cuándo usar cada uno
| Comando | Muestra | ¿Sobrevive a un reset? | Úsalo para |
|---|---|---|---|
git log | Historial de commits de la rama | No | Consultar el historial normal |
git reflog | Todos los movimientos de HEAD | Sí | Recuperar commits perdidos |
Ejemplos
Ver commits recientes
git logMuestra el historial completo con hash, autor, fecha y mensaje.
Vista compacta de una línea
git log --onelineMuestra cada commit en una línea con hash corto y mensaje.
Ver el historial de un archivo
git log -- path/to/file.jsMuestra solo los commits que cambiaron el archivo indicado.
Grafo visual de ramas
git log --oneline --graph --allMuestra un grafo en texto de todas las ramas y sus commits.
Ejemplos de flujos de trabajo
git log --oneline -10Vistazo rápido a los 10 últimos commits
git log -p -1Ver el diff completo del commit más reciente
git log --oneline -- path/to/file.jsListar los commits que cambiaron este archivo
git log -p -- path/to/file.jsVer los cambios reales
git blame path/to/file.jsVer quién escribió cada línea
git log --oneline --graph --allVisualización completa de las ramas
git log --oneline --graph main..featureCommits de feature que no están en main
Solución de problemas
La salida del log es demasiado larga / no puedo salir
Causa: Git usa el paginador 'less' por defecto
Pulsa 'q' para salir. Usa -n para limitar los commits o redirige a head: git log --oneline | head -20
No veo los commits de otras ramas
Causa: Por defecto, git log solo muestra los commits alcanzables desde HEAD (tu rama actual)
Usa --all: git log --oneline --all
No encuentro un commit que sé que existe
Causa: Puede que el commit esté en otra rama o que se quitara con un reset
Prueba git reflog para ver todas las posiciones recientes de HEAD, incluso tras resets
El log muestra demasiada / demasiado poca información
Causa: Puede que el formato por defecto no se ajuste a lo que necesitas
Usa --oneline para algo breve, -p para detalle y --stat para un resumen por archivo
Consejos y trampas
Buenas prácticas
- ✓Usa --oneline para vistazos rápidos y el log completo para revisiones detalladas
- ✓Combina --graph --all --oneline para ver todas las ramas de forma visual
- ✓Usa -n para limitar la salida cuando solo necesites los commits recientes
- ✓Filtra por autor, fecha o ruta para encontrar cambios concretos
- ✓Usa git log main..feature para ver los commits exclusivos de una rama
Errores comunes
- ✗No saber que puedes pulsar 'q' para salir del visor del log (usa el paginador less por defecto).
- ✗Olvidar --all cuando quieres ver commits de todas las ramas, no solo de la actual.
- ✗Usar git log cuando necesitas git reflog: log muestra el historial de commits, reflog muestra todos los cambios de referencias, incluidos los resets.
- ✗No poner -- antes de las rutas de archivo, lo que puede crear ambigüedad con los nombres de rama.
Preguntas frecuentes
Pulsa 'q' para salir. Git log usa el paginador 'less'. También puedes limitar la salida con -n o redirigirla a head.
Usa --all: git log --oneline --all. Sin él, solo ves los commits alcanzables desde tu rama actual (HEAD).
Usa -p (patch): git log -p. Añade -1 para ver solo el más reciente: git log -p -1
Usa --author: git log --author="name". Coincide con partes de nombres y correos (distingue mayúsculas; añade -i para ignorarlas).
Log muestra el historial de commits. Reflog muestra todos los movimientos de HEAD, incluidos los resets. Usa reflog para recuperar commits «perdidos».