Diff de texto/ Linha por linha

Destaque diferenças linha por linha entre dois textos. Suporta código e texto simples com linhas de contexto configuráveis. Totalmente local.

OriginalA
ModificadoB
Contexto
Diff

Cole o texto nos dois painéis acima.

Esta ferramenta resolveu o seu problema?

O que é uma ferramenta de diff de texto

Uma ferramenta de diff de texto usa o algoritmo LCS (subsequência comum mais longa) para comparar dois textos linha por linha, identificando adições, exclusões e modificações.

Casos de uso comuns de ferramentas diff

Revisão de código: comparar alterações de código. Gerenciamento de configuração: comparar configs entre ambientes. Colaboração em documentos: ver histórico de edições. Migração de dados: verificar a precisão da transformação.

Exemplos de código

JavaScript (jsdiff)
import { diffLines } from 'diff';

const a = 'foo\nbar\nbaz';
const b = 'foo\nqux\nbaz';

diffLines(a, b).forEach(part => {
  const sign = part.added ? '+' :
               part.removed ? '-' : ' ';
  process.stdout.write(sign + part.value);
});
Python
import difflib

a = ['foo\n', 'bar\n', 'baz\n']
b = ['foo\n', 'qux\n', 'baz\n']

# Unified diff (like git diff)
diff = difflib.unified_diff(
    a, b,
    fromfile='original',
    tofile='modified',
    n=3,  # context lines
)
print(''.join(diff))
Go
// github.com/sergi/go-diff
import (
  dmp "github.com/sergi/go-diff/
       diffmatchpatch"
)

d := dmp.New()
diffs := d.DiffMain(textA, textB, false)
patch := d.PatchMake(textA, diffs)
fmt.Println(d.PatchToText(patch))
Shell / CLI
# Unified diff with 3 context lines
diff -U 3 original.txt modified.txt

# Git-style diff (no git repo needed)
git diff --no-index \
  original.txt modified.txt

# Side-by-side view
diff --side-by-side \
  original.txt modified.txt

Perguntas frequentes

Como funciona o algoritmo diff?
A ferramenta usa o algoritmo LCS (subsequência comum mais longa) para comparar textos linha por linha, encontrando o conjunto mínimo de adições e exclusões — semelhante ao algoritmo usado pelo git diff.
O que fazem as linhas de contexto?
As linhas de contexto controlam quantas linhas inalteradas são mostradas ao redor de cada seção alterada. 0 mostra apenas linhas alteradas; 3 mostra 3 linhas antes e depois de cada alteração; 'Tudo' mostra o texto completo.
Quais tipos de texto são suportados?
Qualquer texto simples é suportado, incluindo código (JavaScript, Python, Go, etc.), arquivos de configuração (JSON, YAML, TOML), documentos Markdown e arquivos de log.
Meu conteúdo é enviado a algum servidor?
Não. Todo o processamento acontece inteiramente no navegador. Seu conteúdo nunca sai do seu dispositivo, tornando segura a comparação de código sensível.
Como copio a saída diff?
Clique no botão 'Copiar' no canto superior direito do painel diff para copiar o texto diff unificado para a área de transferência.
O que faz o botão Trocar?
Trocar A↔B troca os painéis Original e Modificado, permitindo ver o diff na direção oposta.