Git Diff
Última actualización
git diff muestra los cambios exactos línea por línea entre dos estados de tu repositorio. Sin argumentos muestra lo que has cambiado pero aún no has preparado. Añade --staged para ver lo que está preparado, nombra dos commits o ramas para compararlos, o nombra un archivo para acotarlo.
Prueba esto en el terminal playground - una shell real en tu navegador, sin nada que instalar.
Sintaxis
| Command | What it does |
|---|---|
git diff | Cambios sin preparar frente al índice |
git diff --staged | Cambios preparados frente al último commit |
git diff HEAD | Todos los cambios desde el último commit |
git diff main feature | Diferencia entre dos ramas |
git diff <hash1> <hash2> | Diferencia entre dos commits |
git diff -- file.txt | Cambios en un solo archivo |
Casos comunes
| Goal | Command |
|---|---|
| Ver lo que estás a punto de hacer commit | git diff --staged |
| Ver el trabajo sin confirmar | git diff |
| Comparar tu rama con main | git diff main |
| Solo los nombres de los archivos que cambiaron | git diff --name-only |
Preguntas frecuentes sobre git diff
¿Qué muestra git diff por defecto?
Sin argumentos,
git diff muestra los cambios en tu árbol de trabajo que aún no están preparados - lo que has editado desde el último git add. Para ver lo que ya has preparado (y confirmarás a continuación), usa git diff --staged; para ver todo desde el último commit, usa git diff HEAD.¿Cuál es la diferencia entre git diff y git diff --staged?
git diff compara tu árbol de trabajo con el área de preparación (cambios sin preparar). git diff --staged (también --cached) compara el área de preparación con el último commit (cambios preparados). Juntos muestran las dos mitades de tu trabajo sin confirmar.¿Cómo comparo dos ramas o commits?
Nómbralos:
git diff main feature muestra qué difiere entre las dos ramas, y git diff <hash1> <hash2> compara dos commits. Añade -- <file> al final para limitar la comparación a un solo archivo.¿Cómo veo solo qué archivos cambiaron, no el diff completo?
Usa
git diff --name-only para obtener solo los nombres de archivo, o git diff --stat para un resumen que muestra cada archivo y cuántas líneas cambiaron. Son útiles para una vista rápida antes de leer el diff completo línea por línea.¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar
git diff en una shell real en tu navegador - sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre la inspección de cambios paso a paso.