Comparar textos (diff)
Concepto de Herramientas de texto en Utilidades, conectado con sus herramientas y conceptos vecinos.
Actualizado el 16 de julio de 2026
Un diff (de difference, diferencia) es la representación de los cambios entre dos versiones de un texto. Muestra qué se añadió, qué se eliminó y qué permaneció igual, de modo que puedes entender exactamente qué cambió sin comparar los documentos completos línea a línea.
Tipos de diff y cuándo usar cada uno
| Tipo | Granularidad | Caso de uso ideal |
|---|---|---|
| Diff de líneas | Línea completa | Código fuente, archivos de configuración |
| Diff de palabras | Palabra | Artículos, documentos legales, contratos |
| Diff de caracteres | Carácter | Cadenas muy similares, campos de formulario |
| Diff semántico | Párrafo o bloque | Comparar secciones enteras de un documento largo |
Cómo leer un diff en formato unificado
El formato de git diff y de la mayoría de herramientas CLI usa este convenio:
@@ -1,4 +1,5 @@
Línea sin cambios (contexto)
-Línea eliminada del original
+Línea añadida en la nueva versión
Otra línea sin cambios
+Segunda línea añadida
-→ línea del texto original que ya no está.+→ línea nueva que se ha añadido.- Sin prefijo → línea de contexto, presente en ambas versiones.
@@ -1,4 +1,5 @@→ el bloque empieza en la línea 1; en el original tiene 4 líneas, en el nuevo tiene 5.
El algoritmo LCS explicado
El algoritmo de Longest Common Subsequence (secuencia común más larga) resuelve la pregunta: ¿cuál es la secuencia más larga de elementos que aparece en el mismo orden en ambos textos? Todo lo que no forme parte de esa secuencia es un cambio. Para dos textos de n y m líneas, la complejidad es O(n·m), lo que lo hace muy eficiente para ficheros de código de tamaño normal. Git añade heurísticas propias (el algoritmo «Myers» por defecto, con la opción --diff-algorithm=patience para casos complicados) para producir diffs más legibles.
Casos de uso habituales
- Control de versiones de código:
git diff HEAD~1muestra los cambios entre el commit actual y el anterior. - Revisión de documentos legales: compara la versión original de un contrato con la versión negociada para ver exactamente qué cláusulas cambiaron.
- Localización y traducciones: cuando cambia el texto fuente, el diff identifica los párrafos que hay que actualizar en cada idioma sin revisar el documento completo.
- Comparación de configuraciones: detectar qué cambió entre el
nginx.confde staging y el de producción antes de un despliegue. - Detección de plagio: encontrar coincidencias literales entre dos textos con un diff inverso.
Herramientas de diff disponibles
- En línea: pegas ambos textos y obtienes el resultado de inmediato. Útil para comparaciones puntuales sin instalar nada.
- git:
git diff,git diff --word-diff(diff por palabras),git diff --stat(solo resumen de ficheros y líneas). - Editores de código: VS Code, IntelliJ y Sublime Text tienen visor de diff integrado para comparar ficheros y commits.
- Herramientas de escritorio: Meld (Linux), Beyond Compare, FileMerge (macOS) para comparación visual con edición en línea.
Para normalizar el caso del texto antes de comparar, usa el transformador de mayúsculas y minúsculas. Para contar cuántas palabras han cambiado, el contador de palabras te da el dato en ambas versiones por separado.
Conceptos relacionados
También en Herramientas de texto
Preguntas frecuentes
¿Qué es un diff de texto?
¿Cuál es el algoritmo que usan los diff más comunes?
¿Qué diferencia hay entre un diff de líneas y uno de palabras?
Ver todas las herramientas de Utilidades.