Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git shortlog [-n] [-s] [-e] [<revision-range>]

Descripción

El comando git shortlog agrupa commits por autor, produciendo resúmenes concisos adecuados para notas de release, listas de contribuyentes y vistazos rápidos de quién hizo qué. Por defecto imprime el nombre de cada autor seguido de las líneas de asunto de sus commits en el rango dado.

Modos comunes incluyen -sn (resumen, ordenado por conteo) para listas de top contribuyentes y --no-merges para ignorar merge commits. Combinado con un rango como v1.0..v2.0, shortlog es la forma más rápida de redactar créditos de notas de release.

En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.

Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

OpciónDescripción
-s, --summaryShow only counts per author.
-n, --numberedSort authors by commit count.
-e, --emailInclude author email addresses.
--no-mergesExclude merge commits.
--group=<type>Group by author, committer, or trailer.
-w[<width>]Wrap subject lines.

Ejemplos

git shortlog -sn
# Top contributors all-time, with counts

git shortlog -sne v1.0..v2.0
# Contributors between two releases, with emails

git shortlog --no-merges HEAD~50..HEAD
# Subjects grouped by author for the last 50 commits

git shortlog --group=trailer:co-authored-by
# Group by Co-authored-by trailer

Errores comunes

Multiple commit identities for the same person (different emails, different name capitalizations) inflate the contributor count. A .mailmap file at the repo root canonicalizes them. Forgetting --no-merges can attribute many merge commits to project maintainers.

Comandos relacionados

git log, git blame, git describe, git tag