Listar el historial de commits
Una vez que hemos creado varios commit o si clonamos un repositorio, muy probablemente vamos a necesitar revisar el historial de commits. Esto lo podemos lograr por medio del comando git log.

Por defecto este comando va a mostrar la lista de commits en orden cronológico, mostrando los más recientes de primero.
Al igual que muchos otros comandos git log nos va a permitir agregar distintas opciones sobre como se va a mostrar el resultado de la ejecución del comando. Por ejemplo podemos usar el comando con la opción git log --stat.

El la siguiente tabla se muestran algunas de las opciones disponibles para el comando.
| Opción | Decripción de la opción |
|---|---|
| -p | Muestra los cambios introducidos en el commit |
| --stat | Muestra estadísticas sobre los archivos modificados |
| --shortstat | Muestra estadísticas resumidas sobre los archivos modificados |
| --name-only | Muestra la información del commit seguida de los nombres de los archivos modificados |
| --name-status | Muestra la información del commit seguida de los nombres de los archivos modificados junto con el tipo de modificación |
| --abbrev-commit | Muestra solo los primeros caracteres del Hash en lugar de los 40 |
| --relative-date | Muestra la fecha relativa en lugar de la fecha completa |
| --graph | Muestra los commit a forma de un gráfica |
| --pretty | Nos permite mostrar un estilo alternativo |
La opción pretty es muy útil ya que nos permite cambiar la manera en la que se muestra la lista por defecto. La podriamos usar de la siguiente manera: git log --pretty=format:'%h %s'

En la siguiente tabla se muestran algunas de las opciones disponibles.
| Opción | Decripción del resultado |
|---|---|
| %H | Commit hash |
| %h | Commit hash abreviado |
| %T | Hash del árbol |
| %t | Hash del árbol abreviado |
| %P | Hash de los ancestros |
| %p | Hash de los ancestros abreviado |
| %an | Nombre del autor |
| %ae | Email del autor |
| %ad | Fecha en la que el autor del documento lo agrego |
| %ar | Fecha relativa en la que el autor del documento lo agrego |
| %cn | Nombre de la persona que agrega los cambios |
| %ce | Email de la persona que agrega los cambios |
| %cd | Fecha en la que se realizaron los cambios en el documento |
| %cr | Fecha relativa en la que se realizaron los cambios en el documento |
| %s | Asunto del commit |
Filtrar los resultados
Además de poder cambiar como se muestran los resultados también podemos filtrar las búsquedas agregando la opción indicada. Por ejemplo podemos usar git log --since="6 days" para mostrar solamente los commit realizados en los últimos 6 días.

Esta opción se puede definir de diferentes maneras por ejemplo agregando la fecha exacta o de manera relativa como lo acabamos de hacer.
En la siguiente tabla se muestran algunas de las opciones disponibles para filtrar.
| Opción | Decripción del resultado |
|---|---|
| -n | Muestra la cantidad n de commits |
| --since, --after | Muestra los commit realizados después de la fecha indicada |
| --until, --before | Muestra los commit realizados antes de la fecha indicada |
| --author | Muestra los commit asociados al autor |
| --committer | Muestra los commit asociados a la persona que realiza un cambio |
| --grep | Muestra los commit que en el asunto contengan el string especificado |
| -S | Muestra los commit que agregan o eliminan código que se represente en el string |