Ir para o conteúdo
Totalmente local

Analisador de diff unificado

Resuma um diff unificado ou ficheiro .patch: ficheiros alterados, linhas adicionadas e removidas.

Entrada
Saída

Analisador de diff unificado

Cole um diff unificado — o resultado de `diff -u`, `git diff`, ou o conteúdo de um ficheiro `.patch` — e esta ferramenta constrói um resumo por ficheiro: quantas linhas foram adicionadas e removidas em cada ficheiro, e o total em todo o diff. É construído para ver rapidamente um patch grande antes de o abrir numa ferramenta completa de revisão de código, ou para colar um resumo no estilo diffstat numa descrição de pull request ou num changelog.

Ordene a lista de ficheiros por caminho ou pelo número de alterações para ver os ficheiros mais alterados em primeiro lugar. Ative "Mostrar blocos individuais" para dividir cada ficheiro em seus blocos de alteração `@@` em vez de apenas um total por ficheiro. "Detetar renomeações e alterações de modo" reconhece headers de renomeação e modo de ficheiro do git e rotula esses ficheiros em vez de apenas listar o seu novo caminho. "Ignorar alterações de espaçamento apenas" desconta um par de linha removida/adicionada que diferem apenas no espaçamento — útil após um formater ou linter ter tocado num ficheiro. Filtre por extensão para focar apenas em, por exemplo, ficheiros `.ts` num patch misto de frontend/backend, e exclua a saída gerada como `dist/*` ou `*.min.js` para que artefatos de compilação não preencham o resumo.

O formato de saída muda entre uma tabela em texto simples, uma tabela Markdown pronta para colar numa descrição de pull request, e CSV para folhas de cálculo. "Mostrar rácio de adições/remoções" adiciona uma coluna com o rácio adicionado/removido por ficheiro, que é uma forma rápida de identificar ficheiros que são principalmente código novo versus principalmente ações de exclusão. Alterações de ficheiro binário são reconhecidas e reportadas com contagens de linhas zero em vez de serem ignoradas ou mal contadas.

Tudo corre localmente no seu navegador — o diff nunca sai do seu dispositivo, o que importa quando vem de um repositório privado. Copie o resumo, descarregue-o como um ficheiro .txt, ou envie-o direto para a entrada de outra ferramenta para continuar a trabalhar.

FAQ

Que formatos de diff aceita?
Saída de diff unificado de `diff -u`, `git diff`, `git format-patch` e ficheiros `.patch` padrão, com ou sem a linha de header `diff --git`.
Como conta as linhas adicionadas e removidas?
Conta cada linha `+` e `-` dentro de cada bloco. Com "Ignorar alterações de espaçamento apenas" ativado, um par de linha removida/adicionada que é idêntico após remover espaçamento não é contado em nenhum dos lados.
Pode mostrar ficheiros renomeados ou com mudanças de modo?
Sim. Com "Detetar renomeações e alterações de modo" ativado, ficheiros que o git marcou com headers `rename from`/`rename to` ou `old mode`/`new mode` são rotulados em conformidade, mostrando o caminho antigo e novo para uma renomeação.
Aceita diffs sem header `diff --git`?
Sim. A saída simples de `diff -u old new`, que apenas tem linhas `---`/`+++`/`@@` e nenhum header específico do git, é analisada da mesma forma.
O meu diff é enviado para algum lado?
Não. A análise corre inteiramente no seu navegador — o diff, e qualquer código que contém, nunca sai do seu dispositivo.