Cómo usar git diff: confirmaciones, ramas, archivos y lado a lado
Un comando compara su carpeta de trabajo, el área de preparación, confirmaciones, ramas y etiquetas. Aquí se explica qué forma usar para cada uno, por qué dos puntos y tres puntos difieren y cómo obtener una diferencia real uno al lado del otro.
Escrito por Kodmora
La casa de software detrás de GitTree
- Historial de commits
- Ramas
- Commits
En esta página
`git diff` sin argumentos muestra cambios que no has preparado. `git diff --staged` muestra lo que contendrá la próxima confirmación y `git diff main feature` compara dos ramas. Agregue -- path/to/file a cualquier formulario para limitarlo a un archivo. Git en sí no tiene una vista de lado a lado en la terminal. Para eso necesitas git difftool o una GUI de Git.
¿Qué comando git diff necesito?
| quieres ver | Comando |
|---|---|
| Cambios aún no realizados | git diff |
| Qué contendrá el próximo commit | git diff --staged |
| Todo desde el último commit. | git diff HEAD |
| Dos commits | git diff <a> <b> |
| Dos ramas, punta a punta | git diff main feature |
| Lo que añadió una rama desde que se separó | git diff main...feature |
| dos etiquetas | git diff v1.0 v2.0 |
| un archivo | git diff -- src/search.ts |
¿Cómo leo la salida de git diff?
diff --git a/src/search.ts b/src/search.ts
index 4e1f2a0..9b3c7d1 100644
--- a/src/search.ts
+++ b/src/search.ts
@@ -12,7 +12,7 @@ export function search(query: string) {
const terms = tokenize(query);
- return index.find(terms, { limit: 20 });
+ return index.find(terms, { limit: 50 });
}---y+++nombran las versiones antigua y nueva del archivo.@@ -12,7 +12,7 @@es un encabezado de trozo: 7 líneas de la línea 12 en cada versión.- Se eliminaron las líneas que comienzan con
-, se agregaron líneas con+, el resto es contexto.
La lección de lectura de diferencias practica esto paso a paso.
¿Cómo diferencio dos confirmaciones?
# any two commits, older first
git diff 3e52f10 7c1d9ab
# the last commit against the one before it
git diff HEAD~1 HEAD
# one commit against its parent, with the message
git show 7c1d9ab¿Cómo diferencio dos ramas?
# the tips of both branches
git diff main feature
# only what feature added since it left main
git diff main...feature
# a remote branch
git fetch origin
git diff main origin/main¿Cómo diferencio un archivo?
# working copy against the last commit
git diff HEAD -- src/search.ts
# the same file on two branches
git diff main feature -- src/search.ts
# a file at two commits
git diff HEAD~3 HEAD -- src/search.ts
# two files outside any repository
git diff --no-index old.txt new.txt¿Cómo hago para que git diff ignore los espacios en blanco?
| Opción | lo que ignora |
|---|---|
-w o --ignore-all-space | Todos los espacios en blanco, incluidas las líneas reindentadas |
-b o --ignore-space-change | Cambios en la cantidad de espacios en blanco. |
--ignore-space-at-eol | Espacio en blanco al final de las líneas. |
--ignore-blank-lines | Se agregaron o eliminaron líneas en blanco |
Estos afectan sólo lo que muestra la diferencia. No cambian lo que se prepara o hace commit. -w es el que se debe utilizar cuando una nueva sangría hace que un archivo completo parezca cambiado.
¿Cómo enumero solo los archivos modificados?
# names only
git diff --name-only main...feature
# names with A, M, D or R
git diff --name-status main...feature
# lines added and removed per file
git diff --stat main...feature¿Cómo veo qué palabras cambiaron?
git diff --word-diff
git diff --color-wordsLas diferencias de Word ayudan con líneas largas, como los párrafos de Markdown, donde una palabra cambiada marca toda la línea como cambiada.
¿Cómo obtengo una diferencia de lado a lado?
Simple git diff imprime una sola columna y no tiene opción de lado a lado. Tiene tres formas de obtener dos columnas: apuntar git difftool a un programa de diferencias, instalar un buscapersonas de terminal como delta o usar una GUI de Git.
# pick a tool once
git config --global diff.tool vimdiff
# open each changed file in it
git difftool main...feature
# skip the prompt for each file
git difftool -yCómo leer una diferencia lado a lado en GitTree
abrir una diferencia
Seleccione un archivo modificado en sus cambios de trabajo o en cualquier confirmación.
Elige la vista
En Vista de diferencias encima de la diferencia, elija Hunk, Inline o Split. Dividido muestra el antes y el después, uno al lado del otro.
Ajústalo
Desde la paleta de comandos, ejecute Ignorar espacios en blanco en diferencias, Resaltar palabras cambiadas o Ajustar líneas de diferencias.
Compara dos ramas
Ejecute Comparar referencias… para seleccionar dos ramas, etiquetas o confirmaciones cualesquiera y ver los cambios desde su base de fusión o punta a punta.

Consulte elegir y usar una vista de diferencias y comparar referencias para cada opción.
Preguntas frecuentes
¿Por qué git diff no muestra nada?
Probablemente sus cambios estén preparados. git diff compara la carpeta de trabajo con el área de preparación, así que ejecuta git diff --staged o git diff HEAD. Los archivos nuevos sin seguimiento nunca aparecen hasta que los agrega.
¿Cuál es la diferencia entre git diff y git status?
git status enumera qué archivos cambiaron. git diff muestra las líneas modificadas dentro de ellas.
¿Cómo comparo mi rama con la principal?
Ejecute git diff main...HEAD para ver solo el trabajo de su rama. Busque primero y use origin/main para comparar con la última versión remota.
¿Es git diff --cached lo mismo que --staged?
Sí. Son dos nombres para la misma opción.
¿Cómo guardo una diferencia en un archivo?
Ejecute git diff > changes.patch. Puede aplicar el archivo más tarde, como se muestra en cómo crear y aplicar un parche.
Fuentes
Las afirmaciones sobre otros productos se compararon con sus páginas oficiales el 7 de noviembre de 2026. Los precios y las características cambian; Las páginas de los proveedores son la fuente de la verdad.
