Ver el historial de commits de un proyecto con git log, cómo hacerlo, cuáles son las opciones más útiles para sacarle partido al log.
A veces necesitamos examinar la secuencia de commits (confirmaciones) que hemos realizado en la historia de un proyecto, para saber dónde estamos y qué estados hemos tenido a lo largo de la vida del repositorio. Esto lo conseguimos con el comando de Git "log".
Una vez tenemos el listado en nuestro terminal podemos observar los mensajes de los commits y su identificador, pero también podríamos obtener más información de un commit en concreto, sus modificaciones en el código, o tener la referencia para moverse hacia atrás en el histórico de commits. En este artículo del Manual de Git vamos a ver algunas de estas acciones más comunes para empezar a practicar con el log de Git.
Comando git log
El comando que podemos usar para ver el histórico de commits, estando situados en la carpeta de nuestro proyecto, es:
git log
Con esto obtenemos una salida como la que sigue en la siguiente imagen:
Como puedes observar, el listado de commits está invertido, es decir, los últimos realizados aparecen los primeros.
De un commit podemos ver diversas informaciones básicas como:
- Identificador del commit
- Autor
- Fecha de realización
- Mensaje enviado
Podría ser algo como esto:
commit cd4bcc8bad230f895fcadd5baf258715466a8eaf
Author: Miguel Angel Alvarez <malvarez@desarrolloweb.com>
Date: Fri Feb 10 18:38:41 2017 -0200
ejemplos clase 1 polymerfire
Log en una línea por commit
Es muy útil lanzar el log en una sola línea, lo que permite que veamos más cantidad de commits en la pantalla y facilita mucho seguir la secuencia, en vez de tener que ver un montón de páginas de commits.
Para ello usamos el mismo comando, pero con la opción "--oneline":
git log --oneline
Entonces la salida será algo como esto:
Ver un número limitado de commits
Si tu proyecto ya tiene muchos commits, decenas o cientos de ellos, quizás no quieras mostrarlos todos, ya que generalmente no querrás ver cosas tan antiguas como el origen del repositorio. Para ver un número de logs determinado introducimos ese número como opción, con el signo "-" delante (-1, -8, -12...).
Por ejemplo, esto muestra los últimos tres commits:
git log -3
Ver información extendida del commit
Si queremos que el log también nos muestre los cambios en el código de cada commit podemos usar la opción -p. Esta opción genera una salida mucho más larga, por lo que seguramente nos tocará movernos en la salida con los cursores y usaremos CTRL + Z para salir.
git log -2 -p
Eso nos mostrará los cambios en el código de los últimos dos commits. Sin embargo, si quieres ver los cambios de cualquier otro commit que no sea tan reciente es mucho más cómodo usar otro comando de git que te explicamos a continuación "git show".
Comando "show": obtener mayor información de un commit
Podemos ver qué cambios en el código se produjeron mediante un commit en concreto con el comando "show". No es algo realmente relativo al propio log del commit, pero sí que necesitamos hacer log primero para ver el identificador del commit que queremos examinar.
Realmente nos vale con indicarle el resumen de identificador del commit, que vimos con el modificador --oneline.
git show b2c07b2
Podrás observar que al mostrar la información del commit te indica todas las líneas agregadas, en verde y con el signo "+" al principio , y las líneas quitadas en rojo y con el signo "-" al principio.
Opción --graph para el log con diagrama de las ramas
Si tu repositorio tiene ramas (branch) y quieres que el log te muestre más información de las ramas existentes, sus uniones (merges) y cosas así, puedes hacer uso de la opción --graph.
git log --graph --oneline
Ese comando te mostrará los commit en una línea y las ramas en las que estabas, con sus diferentes operaciones. La salida del git log será algo como esto:
Conclusión
Hemos visto algunas de las opciones más útiles y recurrentes cuando quieres revisar el log de un repositorio Git. Pero hay decenas de otras configuraciones y opciones del comando existentes para conseguir infinidad de nuevos comportamientos.
La referencia completa de opciones del comando "git log" la puedes ver en esta dirección: https://git-scm.com/docs/git-log
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...