
En resumen
Compara dos textos o archivos con un diff checker: vista dividida y unificada, granularidad por palabra o carácter y cómo leer un patch.
Un diff checker muestra exactamente qué cambió al comparar dos textos —qué líneas se añadieron, cuáles se eliminaron y cuáles se editaron— en lugar de obligarte a recorrer ambos documentos con la vista. Esta guía explica cómo lanzar una comparación, cómo leer el resultado y los ajustes que deciden si la salida es señal o ruido.
Funciona con código fuente, archivos de configuración, migraciones SQL, contratos y prosa, y la comparación se ejecuta por completo en tu navegador. Antes de comparar dos payloads JSON, normaliza ambos lados con el formateador JSON para que la sangría no se reporte como un cambio; si el texto llega codificado en Base64, decodifícalo primero con el codificador / decodificador Base64.
01Qué compara realmente un diff
Un diff no es una comprobación de igualdad carácter a carácter. Calcula el script de edición más corto entre los dos lados —el conjunto mínimo de líneas insertadas y eliminadas que convierte una versión en la otra— y reporta esas inserciones y eliminaciones: las líneas que solo están a la izquierda son eliminaciones, las que solo están a la derecha son adiciones y todo lo demás es contexto. Git resuelve ese mismo problema con su algoritmo myers por defecto.
Por eso una edición pequeña en un archivo largo produce un diff pequeño aunque los dos documentos difieran en cientos de caracteres: solo se marcan las líneas cambiadas. Dos consecuencias importan en la práctica:
- Un bloque movido parece una eliminación más una adición, porque el algoritmo compara posiciones y no intenciones.
- Los cambios de formato —reindentación, cambio de fin de línea, espacio final— aparecen como diferencias reales salvo que le digas a la herramienta que los ignore.
02Comparar dos bloques de texto
- Pega el original en Original — El panel izquierdo es la versión de referencia. Puedes pegar, escribir o subir un archivo con el botón Upload.
- Pega la versión revisada en Modified — El panel derecho contiene la versión nueva. Ambos paneles aceptan pegados grandes y archivos.
- Pulsa Compare — El panel de resultado marca las eliminaciones en rojo y las adiciones en verde, y el resumen indica cuántos bloques cambiaron y cuántas líneas se añadieron o borraron.
- Salta entre cambios — Usa Previous y Next para recorrer los bloques en lugar de desplazarte. El contador (por ejemplo, «3 changes · 2 added · 1 deleted») te dice cuánto se movió de verdad.
- Elige vista dividida o unificada — Split alinea las dos versiones en paralelo. Unified las condensa en una sola columna con el patch: el formato que espera quien revisa y el que pegas en un ticket.
- Ajusta granularidad y filtros — Cambia entre Line, Word y Char, y activa Ignore whitespace o Ignore case cuando las únicas diferencias sean de formato.
- Intercambia, copia o exporta — Swap Sides invierte la dirección, Copy saca cualquiera de los paneles y Export .patch descarga un patch unificado estándar —el formato que lee
git apply— que puedes adjuntar a una revisión.
03Granularidad por línea, palabra o carácter
La granularidad por línea es la predeterminada y la correcta para código y configuración, porque las revisiones se escriben por líneas y así es como git reporta los cambios.
La granularidad por palabra mantiene visible la parte no modificada de una línea editada, así que cambiar una palabra en un párrafo no parece una frase reescrita. Úsala en prosa, mensajes de commit y traducciones.
La granularidad por carácter baja un nivel más y sirve para atrapar un cambio invisible: una comilla cambiada, un separador distinto o un espacio duro que parece un espacio normal. Cuando ya conoces el patrón exacto, el probador de regex encuentra y reemplaza cada aparición en todo el archivo.
04Ignorar espacio y mayúsculas
Dos archivos que se ven idénticos pueden seguir difiriendo en formas que no buscabas. Reindentar un JSON, pasar de CRLF a LF o los espacios finales que añade un editor producen ruido de diff que esconde el cambio que buscas.
Ignore whitespace colapsa las series de espacios y tabuladores e ignora el espacio inicial y final al comparar líneas, así que un archivo solo reformateado no reporta cambios: el mismo comportamiento de diff -w y diff -b en GNU diffutils. Ignore case trata ALPHA y alpha como iguales (diff -i), útil al comparar claves de configuración o palabras clave de SQL.
05Leer un patch unificado
Un solo hunk de un diff unificado: las líneas eliminadas empiezan por -, las añadidas por + y el contexto sin cambios por un espacio. En la cabecera del hunk, @@ -12,7 +12,8 @@ significa que el hunk empieza en la línea 12 y cubre 7 líneas en el original y 8 en el archivo modificado.
--- original
+++ modified
@@ -12,7 +12,8 @@ export function useUser(userId) {
const [data, setData] = useState(null);
- const [loading, setLoading] = useState(false);
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
06Cómo se ve un cambio
Un valor de configuración modificado
Entrada
timeout = 30
retries = 3
log_level = "info"
Salida
timeout = 30
- retries = 3
+ retries = 5
- log_level = "info"
+ log_level = "debug"
Una refactorización, con el ruido de espacio eliminado
Entrada
const total = items.reduce((sum, item) => sum + item.price, 0)
Salida
const total = items
.filter((item) => item.active)
.reduce((sum, item) => sum + item.price, 0)
Con Ignore whitespace activado, solo se reporta la línea .filter añadida; las líneas de .reduce separadas no se tratan como una reescritura.
Revisa el espacio antes de dudar de la lógica
Si todas las líneas aparecen como cambiadas, la causa suele ser la indentación o los finales de línea, no el código. Activa Ignorar espacio primero.
07Por qué un diff muestra cambios que no hiciste
| Lo que ves | Causa | Ajuste que lo arregla |
|---|---|---|
| Todas las líneas cambian tras reformatear | Sangría de dos o cuatro espacios, o tabuladores | Ignore whitespace |
| Todas las líneas cambian sin motivo visible | Finales de línea CRLF frente a LF | Ignore whitespace, o normaliza los finales de línea |
| Código idéntico marcado como distinto | Espacios finales añadidos por el editor | Ignore whitespace |
| Una constante renombrada en todas partes | Un cambio solo de mayúsculas | Ignore case cuando solo quieres cambios estructurales |
| Un bloque aparece borrado y vuelto a añadir | El código se movió | Lee la vista unificada antes de asumir una reescritura |
Si ninguno de los dos lados está bajo control de versiones, la comparación en el navegador es la única opción. Consulta cómo formatear, validar y minificar JSON para el paso de limpieza que elimina la mayor parte del ruido antes de empezar.
08Fuentes
- GNU Diffutils Manual — Unified Format (fecha de consulta: 2026-10-10)
- GNU Diffutils Manual — Detailed Description of Unified Format (fecha de consulta: 2026-10-10)
- GNU Diffutils Manual — White Space (fecha de consulta: 2026-10-10)
- POSIX diff — Shell and Utilities (fecha de consulta: 2026-10-10)
- Myers, An O(ND) Difference Algorithm and Its Variations (1986) (fecha de consulta: 2026-10-10)
- git diff — documentación oficial (fecha de consulta: 2026-10-10)
- git apply — documentación oficial (fecha de consulta: 2026-10-10)
- gitattributes — documentación oficial (fecha de consulta: 2026-10-10)
- git-config — diff.algorithm (fecha de consulta: 2026-10-10)
Compara dos textos en paralelo o en vista unificada, con granularidad por línea, palabra y carácter.
Diff CheckerPreguntas frecuentes
¿Un diff checker es lo mismo que git diff?
La comparación es la misma y la salida respeta el [formato de diff unificado](https://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html) que imprime [git diff](https://git-scm.com/docs/git-diff). git diff trabaja sobre archivos dentro de un repositorio, mientras que esta herramienta compara dos bloques cualesquiera de texto, incluso contenido que no está en control de versiones.
¿Puedo comparar dos archivos JSON?
Sí, pero si solo difieren en el formato, formatea ambos lados primero o activa Ignore whitespace; de lo contrario cada línea reindentada se reportará como un cambio.
¿La herramienta detecta líneas movidas?
No. Un bloque movido se reporta como una eliminación más una adición, porque el diff de líneas compara posiciones. Coincide con el modelo de git y es lo que espera la mayoría de quien revisa.
¿Qué tamaño de texto puedo comparar?
No hay límite de servidor, pero el diff se ejecuta en el navegador. Los archivos de hasta unos pocos megabytes se comparan sin problema; para logs enormes, filtra antes por rango de tiempo.
¿Puedo deshacer una comparación?
Swap Sides invierte la dirección y Clear All vacía ambos paneles. La comparación en sí no se almacena.
¿Se sube mi texto?
No: ambos paneles y la comparación se quedan en tu navegador.
Artículos relacionados
- Formatear, validar y minificar JSON
Limpia un payload antes de compararlo.
- Comprimir imágenes sin perder calidad
Formatos, ajustes de calidad y errores comunes.
Herramientas relacionadas
- Diff Checker
Comparación de texto en paralelo y unificada.
- Formateador JSON
Normaliza el JSON antes de comparar.
- Probador de regex
Busca y reemplaza patrones en el texto.
- Codificador / decodificador Base64
Inspecciona payloads codificados.