Comandos de Git

git log

git log: muestra el log (historial) de commits.

El comando git log se usa para mostrar el historial de commits de un repositorio de Git. Enseña una lista de todos los commits hechos en el repositorio, junto con información de cada uno: el hash del commit, el autor, la fecha y el mensaje del commit. Este comando es extremadamente útil para entender la historia de un proyecto, seguir cambios a lo largo del tiempo e identificar commits concretos que introdujeron fallos o añadieron funcionalidades.

Por defecto, git log muestra los commits en orden cronológico inverso, con el commit más reciente primero. Cada commit se identifica con su hash único, una cadena de 40 caracteres que identifica ese commit de forma inequívoca. El mensaje del commit es una descripción breve de los cambios hechos en ese commit y puede ayudarte a entender el propósito de cada uno.

Puedes usar muchas opciones con git log para ajustar la salida: filtrar por autor o rango de fechas, mostrar solo ciertas ramas o enseñar los cambios introducidos en cada commit. Aprender a usar git log con soltura mejora mucho tu capacidad para moverte por el historial de un repositorio de Git y entenderlo.

Algunos comandos de Git, como git log, pueden poner tu terminal en modo pager, pensado para navegar listas largas. En este modo puedes desplazarte por la salida con las flechas y del teclado, o con PageUp y PageDown para moverte más rápido. Para salir del modo pager, pulsa q.

Ejemplos

Mostrar el historial de commits con una vista estándar:

git log
Resultado:
commit c9dfc6eeeeb49a9661f39f80c587e9cc10a12c70 (HEAD -> main)
Merge: c369baa 2a0c1b5
Author: Elon Tusk <elon@dix.com>
Date:   2025-11-12
 
    Merge branch 'feature/cart' into main
 
commit c369baab2bd17ec1023a7af5f967b0fac8372d17
Author: Elon Tusk <elon@dix.com>
Date:   2025-11-12
 
    Update main branch
 
commit 2a0c1b53f2ce8176a93000e33226bb637f31d864 (feature/cart)
Author: Elon Tusk <elon@dix.com>
Date:   2025-11-12
 
    Add cart total calculation
 
commit 39c461a87ac0d283dd892b7abe74fa61175f71a8
Author: Elon Tusk <elon@dix.com>
Date:   2025-11-12
 
    Add cart model
 
commit 8ca0133bc67908e5ac49d452aaa8e00a52d18590
Author: Elon Tusk <elon@dix.com>
Date:   2025-11-12
 
    Initial commit

Mostrar el historial de commits con hashes abreviados y un formato simplificado:

git log --oneline
Resultado:
c9dfc6e (HEAD -> main) Merge branch 'feature/cart' into main
c369baa Update main branch
2a0c1b5 (feature/cart) Add cart total calculation
39c461a Add cart model
8ca0133 Initial commit

Mostrar el historial con una representación gráfica de la estructura de ramas:

git log --oneline --graph
Resultado:
*   c9dfc6e (HEAD -> main) Merge branch 'feature/cart' into main
|\
* | c369baa Update main branch
| * 2a0c1b5 (feature/cart) Add cart total calculation
| * 39c461a Add cart model
|/
* 8ca0133 Initial commit

Mostrar el historial de commits con un formato personalizado, enseñando el hash abreviado del commit, la fecha del autor, el asunto y la información de ramas. Hay un montón de marcadores que puedes usar para personalizar la salida; tienes la lista completa en la documentación de Git por si alguna vez la necesitas.

git log --pretty=format:"%h %ad | %s%d [%an]"

Lo mismo con la sintaxis moderna, más corta:

git log --format="%h %ad | %s%d [%an]"
Resultado:
c9dfc6e 2025-11-12 | Merge branch 'feature/cart' into main (HEAD -> main) [Elon Tusk]
c369baa 2025-11-12 | Update main branch [Elon Tusk]
2a0c1b5 2025-11-12 | Add cart total calculation (feature/cart) [Elon Tusk]
39c461a 2025-11-12 | Add cart model [Elon Tusk]
8ca0133 2025-11-12 | Initial commit [Elon Tusk]

Mostrar el historial de commits de un archivo concreto:

Ten en cuenta que la opción especial -- se usa para decirle a Git que todos los argumentos siguientes son rutas de archivo. Esto es necesario para evitar ambigüedades cuando una ruta de archivo podría confundirse con una rama o un commit.

git log -- path/to/file.txt

Mostrar commits dentro de un rango de fechas concreto:

git log --since="2023-01-01" --until="2023-01-31"

Mostrar el historial de commits de una rama concreta:

git log new-blog-design-branch

Mostrar el historial de commits entre dos commits:

git log 9ds73k2..5ka4j3d