git diff
Muestra los cambios entre tus archivos, el área de preparación y los commits
El comando 'git diff' muestra exactamente las líneas que cambiaron. Sin argumentos compara tus archivos de trabajo con el área de preparación — los cambios que aún no preparaste. Con --staged compara el área de preparación con el último commit — lo que contendrá tu próximo commit. Pásale commits o ramas para comparar dos versiones cualesquiera del proyecto.
Sinopsis
git diff [<options>] [<commit>] [--] [<path>...]
git diff [<options>] --staged [<commit>] [--] [<path>...]
git diff [<options>] <commit> <commit> [--] [<path>...]Opciones
Elegir la opción adecuada
Qué compara git diff
Elige los dos lados que quieres comparar
| Comando | Lado izquierdo | Lado derecho |
|---|---|---|
git diff | Área de preparación | Archivos de trabajo |
git diff --staged | Último commit | Área de preparación |
git diff HEAD | Último commit | Archivos de trabajo |
git diff A B | Commit A | Commit B |
Ejemplos
Cambios no preparados
git diffLo que cambió en tus archivos pero aún no está preparado.
Cambios preparados
git diff --stagedLo que contendrá el próximo commit.
Dos commits
git diff HEAD~1 HEADLo que cambió el último commit.
Dos ramas
git diff main feature/loginTodo lo que difiere entre dos ramas.
Ejemplos de flujos de trabajo
git diffLeer lo que cambiaste
git add app.jsPrepararlo
git diff --stagedLeer lo que se va a confirmar
git commit -m "Add to cart"Commit
git diff main...feature/login --statArchivos que cambió la rama desde que se separó de main
git diff main...feature/loginLos cambios completos
Solución de problemas
git diff no muestra nada pero hay archivos cambiados
Causa: Los cambios ya están preparados
Usa git diff --staged (o git diff HEAD para ambos)
Falta un archivo nuevo en el diff
Causa: Los archivos sin seguimiento no se comparan
Prepáralo con git add y luego usa git diff --staged
Todo el archivo aparece como cambiado
Causa: Cambiaron los finales de línea o los espacios
Prueba git diff -w para ignorar espacios y revisa core.autocrlf
Consejos y trampas
Buenas prácticas
- ✓Revisa git diff --staged antes de cada commit.
- ✓En cambios grandes, empieza con --stat y luego lee los detalles.
- ✓Compara ramas con tres puntos (main...branch) para ver solo lo que añadió la rama.
Errores comunes
- ✗Esperar que git diff muestre los cambios preparados — no lo hace; usa git diff --staged.
- ✗Esperar ver archivos sin seguimiento en git diff: los archivos nuevos solo aparecen una vez añadidos.
- ✗Confundir el orden de dos commits: git diff A B muestra cómo pasar de A a B.
Preguntas frecuentes
git diff --staged (o su sinónimo git diff --cached).
git diff HEAD compara el último commit con tus archivos de trabajo.
git show <commit>, o git diff <commit>~1 <commit>.