Texto

Compare dois textos e veja o que mudou

Cole a versão anterior em cima e a nova embaixo. A comparação roda enquanto você digita e marca o que foi removido, o que foi adicionado e quais palavras dentro de uma linha alterada realmente mudaram.

Opções de comparação

Ignorar os espaços também esconde as mudanças de indentação, o que importa em Python e YAML.

Resultado

0Adicionadas
0Removidas
0Sem alterações
100%Similaridade

Alinhar os dois textos é a parte difícil

A maneira óbvia de comparar dois textos é percorrer os dois ao mesmo tempo e marcar cada linha em que eles discordam. Insira uma única linha no topo de um arquivo e essa abordagem aponta todas as linhas restantes como alteradas. É correto e é inútil.

As ferramentas de diff de verdade resolvem outro problema antes: encontrar a sequência mais longa de linhas que aparece, na mesma ordem, nos dois textos. É a subsequência comum mais longa. Tudo o que fica de fora é uma remoção do lado esquerdo ou uma inserção do lado direito, e o alinhamento sai daí.

A implementação de manual preenche uma tabela com uma célula por par de linhas, então tanto o tempo quanto a memória crescem com o produto das duas contagens de linhas. O Git e a maioria dos editores usam no lugar o algoritmo de Myers, cujo custo depende do número de diferenças e não do tamanho dos arquivos — muito mais rápido no caso normal, em que duas versões são quase iguais. Esta ferramenta usa a tabela, com um atalho que faz quase todo o trabalho: as linhas idênticas do começo e do fim são pareadas antes de a tabela ser construída.

Onde a ferramenta desiste

Se mais de cerca de 1.500 linhas de cada lado ainda diferem depois de removidos o começo e o fim comuns, a tabela fica grande demais e a ferramenta para de tentar alinhá-las. Ela passa a marcar todo o miolo como removido e depois readicionado, e a nota abaixo dos botões diz isso. Nesse volume, o caminho é git diff ou uma ferramenta de merge de desktop, não uma caixa de texto.

Os espaços são invisíveis e decisivos

Duas linhas que parecem idênticas muitas vezes não são. O Windows termina as linhas com um retorno de carro seguido de uma quebra de linha; todo o resto usa só a quebra de linha. Esta ferramenta normaliza as duas formas para a quebra de linha antes de comparar, então um arquivo colado de um editor do Windows nunca aparece como 100% diferente só por isso.

Os espaços no fim são o outro clássico. Ignorar espaços no início e no fim resolve, mas também esconde as mudanças de indentação — e em Python, YAML ou Makefiles a indentação é a mudança que você estava procurando. Deixe a opção desligada quando a estrutura depender dos espaços.

Aqui, um texto que termina com quebra de linha e outro sem ela são tratados como idênticos, porque a quebra final é lida como um terminador e não como uma última linha vazia. O Git é mais rígido e imprime \ No newline at end of file. Se essa distinção importa para o que você está fazendo, confira em outro lugar.

O destaque de palavras é um palpite fundamentado

Quando uma linha removida fica logo acima de uma inserida, o mesmo algoritmo roda de novo sobre as palavras dentro delas e sombreia só as partes que realmente mudaram. É muito mais fácil de ler do que dois blocos maciços de vermelho e verde.

Ainda assim é um palpite. O pareamento é feito só por posição — a primeira linha removida com a primeira inserida, e assim por diante. Reescreva um parágrafo e reordene as frases e o pareamento vira bobagem. A ferramenta se recusa a destacar quando duas linhas pareadas compartilham menos de um terço dos caracteres, aproximadamente, o que pega os piores casos, mas não todos. Quando o destaque parecer errado, desligue e leia as linhas inteiras.

Três coisas para conferir antes de confiar no resultado

O que o botão de copiar produz

Copiar diff dá o formato conhecido — um +, um - ou um espaço no começo de cada linha — mas sem os cabeçalhos de bloco @@ e os nomes de arquivo que um diff unificado de verdade carrega. Foi feito para colar em um comentário de revisão ou numa mensagem de chat. patch e git apply vão recusar.

Perguntas frequentes

Meu texto é enviado para algum lugar?

Não. A comparação roda em JavaScript dentro da sua aba. Nada é enviado a um servidor, nada é armazenado e fechar a página descarta os dois textos. Você pode confirmar carregando a página e desconectando da rede: a ferramenta continua funcionando.

Por que ele diz que as linhas são diferentes se parecem iguais?

Quase sempre é um caractere invisível: um espaço no fim, um espaço não separável, uma aspa curva ou uma tabulação onde você esperava espaços. Ative "Ignorar espaços no início e no fim" para descartar o primeiro caso. Se isso não resolver, a diferença está dentro da linha.

Dá para comparar dois arquivos em vez de texto colado?

Não diretamente: não existe seletor de arquivos. Abra os arquivos em qualquer editor e cole o conteúdo. Para arquivos grandes a ponto de colar ficar incômodo, uma ferramenta de diff local vai servir melhor de qualquer forma.

O que significa a porcentagem de similaridade?

É a proporção de linhas que coincidiram, contada sobre os dois textos: as linhas sem alterações vezes dois, divididas pelo total de linhas dos dois lados. Ela mede linhas inteiras, então mudar uma palavra em cada linha dá 0% de similaridade mesmo com os textos quase idênticos.

Posso usar a saída como arquivo de patch?

Não. O diff copiado tem os prefixos de mais e de menos, mas não os cabeçalhos de bloco, então patch e git apply vão recusar. Use para comentários de revisão e chat, e gere um patch de verdade com git diff quando precisar de um que aplique.

Última atualização 19 de setembro de 2026