Compara dos textos y descubre qué cambió
Pega la versión anterior arriba y la nueva abajo. La comparación se ejecuta mientras escribes y marca qué se eliminó, qué se agregó y qué palabras dentro de una línea modificada se movieron realmente.
Resultado
Alinear los dos textos es la parte difícil
La forma obvia de comparar dos textos es recorrerlos a la vez y marcar cada línea en la que no coinciden. Inserta una sola línea al principio de un archivo y ese método reporta todas las líneas restantes como modificadas. Es correcto y es inútil.
Las herramientas de diff de verdad resuelven antes otro problema: encontrar la secuencia más larga de líneas que aparece, en el mismo orden, en los dos textos. Esa es la subsecuencia común más larga. Todo lo que queda fuera es una eliminación del lado izquierdo o una inserción del lado derecho, y la alineación sale de ahí.
La implementación de manual llena una tabla con una celda por cada par de líneas, así que tanto el tiempo como la memoria crecen con el producto de las dos cantidades de líneas. Git y la mayoría de los editores usan en su lugar el algoritmo de Myers, cuyo costo depende de la cantidad de diferencias y no del tamaño de los archivos — mucho más rápido en el caso normal, en el que dos versiones son casi iguales. Esta herramienta usa la tabla, con un atajo que hace casi todo el trabajo: las líneas idénticas del principio y del final se emparejan antes de construir la tabla.
Dónde se rinde
Si después de quitar el principio y el final comunes siguen difiriendo más de unas 1.500 líneas de cada lado, la tabla se vuelve demasiado grande y la herramienta deja de intentar alinearlas. Pasa a marcar todo el bloque central como eliminado y luego vuelto a agregar, y la nota debajo de los botones lo dice. Con ese volumen conviene usar git diff o una herramienta de merge de escritorio, no una caja de texto.
Los espacios son invisibles y decisivos
Dos líneas que se ven idénticas muchas veces no lo son. Windows termina las líneas con un retorno de carro seguido de un salto de línea; todo lo demás usa solo el salto de línea. Esta herramienta normaliza ambos a un salto de línea antes de comparar, así que un archivo pegado desde un editor de Windows nunca aparece como 100% distinto solo por eso.
Los espacios al final son el otro clásico. Ignorar espacios al principio y al final los resuelve, pero también esconde los cambios de sangría — y en Python, YAML o los Makefiles la sangría es el cambio que estabas buscando. Déjala desactivada cuando la estructura dependa de los espacios.
Un texto que termina con un salto de línea y otro que no lo hace se consideran idénticos aquí, porque el salto de línea final se lee como un terminador y no como una última línea vacía. Git es más estricto e imprime \ No newline at end of file. Si esa distinción importa para lo que estás haciendo, verifícala en otro lado.
El resaltado de palabras es una conjetura informada
Cuando una línea eliminada queda justo encima de una insertada, el mismo algoritmo se ejecuta otra vez sobre las palabras que hay dentro y sombrea solo las partes que realmente se movieron. Es mucho más fácil de leer que dos bloques macizos de rojo y verde.
Sigue siendo una conjetura. El emparejamiento se hace solo por posición — la primera línea eliminada con la primera insertada, y así sucesivamente. Reescribe un párrafo y reordena sus oraciones y el emparejamiento se vuelve un sinsentido. La herramienta se niega a resaltar cuando dos líneas emparejadas comparten menos de un tercio de sus caracteres, aproximadamente, lo que atrapa los peores casos pero no todos. Cuando el resaltado se vea mal, desactívalo y lee las líneas enteras.
Tres cosas que revisar antes de confiar en el resultado
- Líneas sueltas muy largas. JavaScript minificado, un JSON en una sola línea o un documento sin saltos de línea duros cuentan todos como una sola línea. Cambia un carácter en el medio y obtienes una línea eliminada y una agregada, con todo sombreado. La comparación por líneas no tiene nada útil que decir sobre un archivo de tres líneas.
- Caracteres parecidos. Un espacio de no separación, una comilla tipográfica pegada desde un procesador de textos o una letra cirílica que se dibuja como una latina se leen como una diferencia aunque en pantalla se vean idénticas. Si una línea aparece como modificada y no ves por qué, esa suele ser la causa.
- Estructura que la herramienta no ve. La comparación es estrictamente textual. No sabe que una función movida es la misma función, que dos objetos JSON con las claves en otro orden son equivalentes, ni que se renombró una variable. La comparación estructural necesita un analizador del lenguaje concreto.
Qué produce el botón de copiar
Copiar diff te da la forma conocida — un +, un - o un espacio al principio de cada línea — pero sin los encabezados de bloque @@ ni los nombres de archivo que lleva un diff unificado de verdad. Está pensado para pegarlo en un comentario de revisión o en un mensaje de chat. patch y git apply lo van a rechazar.
Preguntas frecuentes
¿Se sube mi texto a algún lado?
No. La comparación se ejecuta en JavaScript dentro de tu pestaña. No se envía nada a un servidor, no se guarda nada y cerrar la página descarta los dos textos. Puedes comprobarlo cargando la página y desconectándote de la red: la herramienta sigue funcionando.
¿Por qué dice que hay líneas distintas si se ven iguales?
Casi siempre es un carácter invisible: un espacio al final, un espacio de no separación, una comilla tipográfica o un tabulador donde esperabas espacios. Activa "Ignorar espacios al principio y al final" para descartar el primero. Si eso no lo arregla, la diferencia está dentro de la línea.
¿Puede comparar dos archivos en vez de texto pegado?
No directamente: no hay selector de archivos. Abre los archivos en cualquier editor y pega el contenido. Para archivos tan grandes que pegarlos resulte incómodo, una herramienta de diff local te va a servir mejor de todos modos.
¿Qué significa el porcentaje de similitud?
Es la proporción de líneas que coincidieron, contada sobre los dos textos: las líneas sin cambios por dos, divididas entre el total de líneas de ambos lados. Mide líneas enteras, así que cambiar una palabra en cada línea da 0% de similitud aunque los textos sean casi idénticos.
¿Puedo usar el resultado como archivo de parche?
No. El diff copiado tiene los prefijos de más y de menos pero no los encabezados de bloque, así que patch y git apply lo van a rechazar. Úsalo para comentarios de revisión y chats, y genera un parche de verdad con git diff cuando necesites uno que se pueda aplicar.
Última actualización 19 de septiembre de 2026