6. Historial

Explorar el historial

Como decía antes, el comando git log es tu herramienta de cabecera para explorar el historial de commits. Vamos a ejecutarlo otra vez para ver qué hace.

Tarea
Completada

Ejecuta el comando git log para ver el historial de commits.

Consejo: Algunos comandos de Git, como git log, pueden poner la terminal en modo pager, pensado para navegar por listas largas. En este modo puedes desplazarte por la salida con las teclas de flecha y del teclado. Para salir del modo pager, pulsa q.

¡Genial! Deberías haber visto una lista parecida a esta. Tus hashes de commit, fechas, nombre y correo serán distintos:

Resultado:
commit 11a3f60fe6520fb6f83306d94765ac54f8964be0
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Linked styles to hello.html
 
commit 7d5aa020c9b3cf2cb5a21575a33396f36e783cd4
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added CSS styles
 
commit 346ca091076783c70623aba03fb7139d3d27134f
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added H1, HTML, and BODY tags to hello.html
 
commit 571a4dd16430d5cc89cd2d509bdfbf097d3db63a
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Initial commit

El problema de la salida predeterminada de git log es que tiene bastante ruido. Cada commit ocupa varias líneas, y eso puede agobiar cuando trabajas con un historial largo. Por suerte, git log tiene muchas opciones para personalizar su salida.

Una de las opciones más útiles es --oneline, que condensa cada commit en una sola línea. Vamos a probarla.

Ejecuta en la terminal:
git log --oneline
Tarea
Completada

Ejecuta git log --oneline para ver un historial de commits más compacto.

Deberías haber visto una salida mucho más concisa:

Resultado:
11a3f60 Linked styles to hello.html
7d5aa02 Added CSS styles
346ca09 Added H1, HTML, and BODY tags to hello.html
571a4dd Initial commit

Mucho mejor, ¿verdad? Con --oneline, puedes recorrer el historial rápidamente y encontrar el commit que buscas.

Conviene saberlo

El comando git log tiene muchas otras opciones útiles. Aquí tienes algunos ejemplos. Si pruebas el ejemplo de --author, sustituye Your Name por el nombre que configuraste para que use Git:

Ejecuta en la terminal:
git log --oneline --max-count=2
git log --oneline --since="5 minutes ago"
git log --oneline --until="5 minutes ago"
git log --oneline --author="Your Name"
git log --oneline --all
Tarea
Completada

Prueba algunas de estas variaciones de git log y observa las diferencias en la salida.

Como ves, git log es una herramienta potente para filtrar y dar formato al historial de commits. Puedes combinar varias opciones para crear consultas aún más concretas.

Por ejemplo, vamos a probar un comando git log más avanzado:

Ejecuta en la terminal:
git log --format="%h %ad | %s%d [%an]" --date=short
Tarea
Completada

Ejecuta el comando git log anterior e intenta descifrar su salida.

Debería tener este aspecto. De nuevo, tus hashes, fechas y nombre de autor serán distintos:

Resultado:

11a3f60 2024-03-15 | Linked styles to hello.html (HEAD -> main) [Your Name] 7d5aa02 2024-03-15 | Added CSS styles [Your Name] 346ca09 2024-03-15 | Added H1, HTML, and BODY tags to hello.html (tag: 1.0) [Your Name] 571a4dd 2024-03-15 | Initial commit [Your Name]

Esto es lo que hace cada parte del comando:

  • --format="..." define el formato de salida.
  • %h es el hash abreviado del commit.
  • %ad es la fecha del commit.
  • | es solo un separador visual.
  • %s es el mensaje del commit.
  • %d representa las decoraciones del commit (por ejemplo, punteros de ramas o etiquetas).
  • %an es el nombre del autor.
  • --date=short deja la fecha en formato corto.
¡Genial!

Si acabas usando este formato a menudo, puedes configurarlo como predeterminado. Vamos a hacerlo para este repositorio. Por cierto, si quieres mantener este formato en todos tus repositorios, añade la opción --global a los comandos de abajo.

Ejecuta en la terminal:
git config format.pretty "%h %ad | %s%d [%an]"
git config log.date short
Tarea
Completada

Configura el formato de log personalizado como predeterminado usando los comandos anteriores.

Nota: Esto solo afectará al repositorio actual. Si quieres configurarlo globalmente, añade la opción --global después de cada git config.

¡Genial! Ya has aprendido a explorar el historial de commits con git log de forma eficiente. Esto te vendrá muy bien cuando el proyecto crezca y necesites encontrar commits concretos.

Sigamos con la comparación de commits.

Next step
¿Quieres probar el modo historia?

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.

Modo historia
GRATIS
pero requiere iniciar sesión