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

Sinopsis

git range-diff <range1> <range2>
git range-diff <base> <rev1> <rev2>

Descripción

El comando git range-diff compara dos rangos de commits, mostrando cómo difieren commit-a-commit. Es la mejor herramienta para revisar lo que cambió entre dos versiones de un branch rebaseado o una serie de patches.

A diferencia de git diff old-tip new-tip, range-diff intenta emparejar commits entre rangos basándose en mensaje y patch, mostrando los cambios reales en cada commit en lugar de un diff combinado confuso.

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
--no-colorDisable color output.
--creation-factor=<n>Tunable for matching commits across ranges.
--dual-colorColor both inner and outer diffs.
--no-patchShow only the matching summary, not patches.
--notesInclude git notes in the comparison.

Ejemplos

git range-diff main..feature@{1} main..feature
# Compare branch before and after a rebase

git range-diff origin/main feature.v1 feature.v2
# Compare two patch series versions

git range-diff @{u}..HEAD HEAD@{1}..HEAD
# Compare current upstream-relative tip with what it was last time

Errores comunes

Range-diff matches commits using a heuristic; if you make many small reorderings, the output may pair unexpected commits. Tune --creation-factor if needed. Don't confuse range-diff with git diff A..B — they answer different questions.

Comandos relacionados

git diff, git log, git rebase, git format-patch