Gerador de Patch Unified Diff do Git
Compare dois blocos de texto e gere um unified diff (.patch) no estilo Git, com cabeçalhos de hunk @@ corretos, usando o algoritmo de diff de Myers. Configure as linhas de contexto e os caminhos de arquivo a/b.
Entrada
Linhas sem alteração exibidas ao redor de cada mudança (o padrão do diff -u é 3).
Saída
Insira os dois textos para ver as diferenças.
Mais formas de usar esta ferramenta
API REST
curl -X POST https://api.iotools.cloud/v1/tool/git-unified-diff-patch-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"originalText": "line one\nline two\nline three",
"modifiedText": "line one\nline 2\nline three",
"fromFile": "a.txt",
"toFile": "b.txt",
"contextLines": "3"
}'Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.
Peça a um agente de IA
Use the IOTools `git-unified-diff-patch-generator` tool (Git Unified Diff Patch Generator) on this input:
YOUR_INPUT_HERECole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.
Widget para incorporar
<iframe
src="https://iotools.cloud/embed/git-unified-diff-patch-generator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Gerador de Patch Unified Diff do Git — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Coloque isso na sua própria página — grátis, sem chave, só um link de volta.
| Custo por chamada de API/MCP | A partir de 5 créditos |
|---|---|
| Precisa de mais créditos? | Ver preços |
Também disponível via
Guias
Cole duas versões de um arquivo e obtenha um unified diff patch pronto para aplicar — exatamente no formato --- a, +++ b, @@ -l,s +l,s @@ produzido por git diff e diff -u. Ele roda inteiramente no seu navegador, então nada do que você cola sai da sua máquina.
O que é um unified diff?
Um unified diff é o formato de texto padrão para descrever mudanças entre dois arquivos. Cada patch começa com duas linhas de cabeçalho que nomeiam o arquivo original (---) e o arquivo modificado (+++), seguidas de um ou mais hunks. Um hunk começa com um cabeçalho como @@ -12,7 +12,8 @@, que registra a linha inicial e o tamanho de cada lado, e depois lista as linhas de contexto (prefixadas com um espaço), as linhas removidas (-) e as linhas adicionadas (+). É o formato que o Git armazena nos commits, que as ferramentas de code review renderizam e que patch e git apply consomem.
Como usar
- Cole o texto original na caixa Original e o texto alterado na caixa Modificado.
- Opcionalmente, defina o Caminho do original e o Caminho do modificado — eles se tornam as linhas de cabeçalho
--- a.txt/+++ b.txt. Use caminhos reais do repositório (por exemplo,a/src/index.js) se pretender usargit applyno resultado. - Ajuste as Linhas de contexto se precisar de mais ou menos linhas inalteradas ao redor de cada mudança. O padrão de 3 corresponde ao
diff -u; defina como 0 para o patch mais compacto possível. - Copie o patch gerado ou baixe-o como um arquivo
.patch.
Como o diff é calculado
A ferramenta usa o algoritmo de diff O(ND) de Myers — a mesma abordagem de script de edição mais curto na qual o Git se baseia. O Myers encontra o conjunto mínimo de inserções e remoções que transforma o original no texto modificado e, em seguida, agrupa essas edições em hunks com a quantidade de contexto escolhida. Mudanças adjacentes dentro do dobro da janela de contexto são mescladas em um único hunk, exatamente como o diff -u faz, de modo que a saída é compatível byte a byte com as ferramentas padrão.
Aplicando o patch
Salve a saída como changes.patch e depois aplique-a com git apply changes.patch ou patch -p0 < changes.patch. Se você usou os prefixos de caminho a/… e b/…, o git apply -p1 os mapeia para a sua árvore de trabalho.
É preciso para código?
Sim. O diff em nível de linha é determinístico e corresponde ao diff -u do GNU para as mesmas entradas, incluindo os cabeçalhos de hunk e as contagens de linhas. Ele compara linhas inteiras, então um único caractere alterado aparece como uma linha removida e uma linha adicionada — o comportamento normal para patches baseados em linhas.
Privacidade
Todo o processamento acontece no lado do cliente, no seu navegador. Seu texto nunca é enviado, registrado ou transmitido a um servidor, o que torna a ferramenta segura para código-fonte proprietário e outros arquivos sensíveis.
Perguntas frequentes
Quantas linhas de contexto devo usar? Três é o padrão universal e o que os revisores esperam. Aumente o valor quando um patch precisar de mais código ao redor para ser legível; reduza para 0 para o diff mais compacto.
Posso gerar um patch para um arquivo novo ou excluído? Sim — deixe um dos lados vazio. Um Original vazio gera um patch só com adições; um Modificado vazio gera um patch só com remoções.