Diff Checker

Il nostro diff checker confronta due testi e genera un confronto visivo affiancato in pochi millisecondi. Incolla il testo originale a sinistra e la versione modificata a destra; lo strumento esegue un confronto tra righe basato su LCS (la stessa famiglia di algoritmi utilizzata da GNU diff, git diff e dalla maggior parte degli strumenti di code review) ed evidenzia ogni modifica. Le righe aggiunte sono in verde, quelle rimosse in rosso, mentre le righe modificate mostrano la sottostringa differenziata carattere per carattere. Una riga di riepilogo riporta il conteggio delle righe aggiunte, rimosse e modificate, oltre a una percentuale di somiglianza. Lo strumento supporta testo semplice, codice sorgente (JavaScript, Python, Go, Java, Rust, C/C++, HTML, CSS), configurazioni JSON e YAML, dati CSV, file di log e qualsiasi input UTF-8 fino a diversi megabyte per lato. L'elaborazione avviene interamente in locale nel tuo browser tramite JavaScript — nulla viene inviato a un server, rendendo lo strumento sicuro per codice proprietario, documenti interni e dati confidenziali. Progettato per sviluppatori, redattori tecnici, editori e chiunque debba individuare rapidamente cosa è cambiato tra due versioni di un testo.

star 4.9
auto_awesome AI
New

Diff Checker calculator

lock Privacy: the diff runs entirely in your browser using JavaScript LCS — no text is uploaded to any server. Safe for proprietary code, internal docs and confidential data.

lightbulb Tips

  • •Runs entirely in your browser — no text is uploaded
  • •Format JSON/code identically before diffing to avoid noise
  • •Use 'ignore whitespace' for reformatted-but-equivalent code
  • •Side-by-side for visual review; unified for patch files
  • •Same LCS algorithm as GNU diff and git diff — exact, reproducible

Come confrontare due testi in 3 passaggi: Incolla, Confronta e Revisiona le modifiche

content_paste

Incolla il testo

Incolla il testo originale nel riquadro di sinistra e il testo modificato in quello di destra. Testo semplice, codice, JSON, YAML, CSV — qualsiasi input UTF-8 è valido.

compare_arrows

Esegui il diff

Il diff viene calcolato all'istante non appena incolli. Le righe aggiunte appaiono in verde, quelle rimosse in rosso e le righe modificate evidenziano la sottostringa diversa.

compare

Esamina le modifiche

Leggi il diff affiancato e le statistiche riassuntive (aggiunte / rimosse / % di somiglianza). Attiva 'ignora spazi bianchi' se il codice riformattato genera rumore.

content_copy

Copia o esporta

Copia il diff unificato da usare come file patch o fai uno screenshot della vista affiancata per condividerlo. Tutta l'elaborazione avviene direttamente nel tuo browser: nessun dato viene caricato online.

The Formula

Gli strumenti di diff moderni si basano sulla famiglia di algoritmi LCS (Longest Common Subsequence), la stessa base teorica introdotta da Hunt-McIlroy ai Bell Labs nel 1976 e perfezionata da Eugene Myers nel 1986 (l'algoritmo O(ND) utilizzato da GNU diff e git). Passo 1: dividi entrambi i testi in righe. Passo 2: calcola la LCS, ovvero la sequenza di righe più lunga presente in entrambi gli input nello stesso ordine. Passo 3: classifica ogni riga come 'uguale' (nella LCS, non modificata), 'rimossa' (in linesA ma non nella LCS) o 'aggiunta' (in linesB ma non nella LCS). Passo facoltativo 4: per le coppie adiacenti rimosse + aggiunte su righe simili, contrassegna come 'modifica' ed esegui un sub-diff a livello di singoli caratteri per mostrare la sottostringa effettivamente modificata. Somiglianza = 2 × lunghezza LCS ÷ (righe totali su entrambi i lati). Le implementazioni reali aggiungono euristiche per i blocchi spostati, la gestione degli spazi vuoti e i file di grandi dimensioni.

diff = LCS(linesA, linesB) → ops[] = {equal | add | remove | change}

lightbulb Variables Explained

  • linesA Array di righe dal testo a sinistra (la versione originale / precedente)
  • linesB Array di righe dal testo a destra (la versione modificata / successiva)
  • LCS Longest Common Subsequence (sottosequenza comune più lunga) — la sequenza di righe più lunga che appare in entrambi gli input nello stesso ordine. Le righe fuori dalla LCS vengono trattate come operazioni di aggiunta o rimozione.
  • similarity 100 × lunghezza_LCS × 2 / (linesA.length + linesB.length). Varia da 0% (nessuna sovrapposizione) a 100% (identici).

tips_and_updates Pro Tips

1

Usa il confronto per righe per codice e file di configurazione; usa il confronto per caratteri solo per brevi paragrafi

2

Rimuovi gli spazi vuoti a fine riga prima del confronto — molte "modifiche" reali sono solo spazi invisibili

3

Imposta il confronto su "ignora spazi bianchi" quando confronti codice che è stato riformattato senza modifiche funzionali

4

Per i file JSON, formatta prima entrambi i lati (ordina le chiavi, rientro coerente) così il confronto evidenzierà solo le modifiche reali

5

Quando confronti file CSV, verifica prima il numero di righe e le intestazioni; il confronto per righe evidenzierà poi le modifiche effettive

6

La vista affiancata è ideale per modifiche di piccole e medie dimensioni; la vista unificata è più compatta per riscritture ampie

7

Mantieni il tuo testo locale — la calcolatrice online funziona interamente nel tuo browser, niente viene caricato o registrato

8

Per file molto grandi (>1 MB), calcola 1-2 secondi di elaborazione; l'algoritmo LCS ha una complessità O(N*M) nel caso peggiore

9

Il confronto a livello di parola aiuta i redattori a confrontare testi in prosa; il confronto a livello di riga è quello utilizzato dagli strumenti di code review

10

Per i documenti Microsoft Word, esporta prima in testo semplice — gli strumenti di diff non possono leggere la struttura binaria dei file .docx

Confronta due porzioni di testo, codice, JSON, YAML, CSV o qualsiasi input in solo testo affiancate — all'istante, gratis e interamente nel tuo browser. Il controllo differenze utilizza la stessa famiglia di algoritmi basati su LCS (Longest Common Subsequence) su cui fanno affidamento GNU diff, git diff, GitHub, GitLab, Visual Studio Code e gli IDE JetBrains. Incolla l'originale a sinistra e la versione modificata a destra; lo strumento evidenzia ogni riga aggiunta in verde, ogni riga rimossa in rosso e ogni riga modificata con evidenziazione delle sottostringhe a livello di carattere. Un riepilogo riporta i conteggi delle righe aggiunte, rimosse e modificate oltre a una percentuale di somiglianza. Ideale per sviluppatori che revisionano codice, technical writer che confrontano versioni di documenti, ingegneri DevOps che confrontano configurazioni tra ambienti diversi ed editor che verificano le modifiche reali apportate da un autore. Di seguito: come funzionano gli strumenti di diff, indicazioni specifiche per formato per JSON, CSV, YAML e codice, viste affiancate e unificate, considerazioni sulla privacy e una tabella di confronto focalizzata sugli sviluppatori.

Diff Checker Online: Confronta Testo, Codice e File di Configurazione Affiancati

Il diff checker confronta due porzioni di testo e mostra esattamente quali righe differiscono. Incolla l'originale (la versione 'prima') nella casella di testo a sinistra e la modificata (la versione 'dopo') a destra; lo strumento esegue un diff basato su LCS ed evidenzia ogni differenza in pochi millisecondi.

Le righe aggiunte appaiono in verde, quelle rimosse in rosso, mentre le righe modificate mostrano un'evidenziazione a livello di carattere sulla sottostringa effettivamente cambiata. Una riga di riepilogo in alto riporta il conteggio delle righe aggiunte, rimosse e modificate insieme a una percentuale di somiglianza.

Usalo per qualsiasi confronto in solo testo:

  • codice sorgente
  • configurazioni JSON
  • manifest YAML
  • esportazioni CSV
  • file di log
  • bozze in Markdown
  • prosa semplice

Lo strumento gestisce input UTF-8 fino a diversi megabyte per lato senza bloccarsi.

Soprattutto: ogni byte di calcolo viene eseguito localmente nel tuo browser. Nulla viene inviato a un server, nulla viene registrato, nulla lascia il tuo dispositivo — sicuro per codice proprietario, documenti interni e dati riservati.

Come Confrontare Due Testi: Processo in 3 Passaggi per Principianti del Diff Checker

Confrontare due testi richiede tre rapidi passaggi:

  • Passaggio 1: Incolla il testo originale nella casella di sinistra. Questa è la versione 'prima' — il file com'era prima delle modifiche, la bozza originale, la configurazione precedente. Usa Ctrl+A e poi Ctrl+C da qualsiasi editor di testo o browser per copiare il testo, quindi Ctrl+V nel diff checker.
  • Passaggio 2: Incolla il testo modificato nella casella di destra. Questa è la versione 'dopo' — il file modificato, la nuova bozza, la configurazione aggiornata. Il diff viene calcolato automaticamente non appena entrambi i lati contengono del testo.
  • Passaggio 3: Leggi il risultato. Le righe verdi sono aggiunte presenti a destra ma non a sinistra; le righe rosse sono rimozioni presenti a sinistra ma non a destra; le righe con evidenziazione a livello di carattere sono 'modificate' (una coppia di rimozione + aggiunta su contenuto simile).

Il riepilogo in alto offre una panoramica generale: conteggio delle aggiunte, conteggio delle rimozioni e percentuale di somiglianza da 0% (nessuna sovrapposizione) a 100% (identici).

Attiva 'ignora spazi bianchi' se le uniche modifiche riguardano la formattazione; attiva 'ignora maiuscole/minuscole' se non ti interessa la distinzione tra Maiuscole e minuscole.

Strumento di Confronto Testuale: Confronto Riga per Riga vs Carattere per Carattere

Gli strumenti di diff funzionano a tre livelli di granularità: riga, parola o carattere.

  • Riga per riga è il valore predefinito universale per codice e configurazione: ogni riga viene trattata come un'unità e il diff identifica quali intere righe sono state aggiunte, rimosse o sostanzialmente modificate. Questo è ciò che mostrano GNU diff, git diff, le PR di GitHub e le viste diff degli IDE.
  • Parola per parola (talvolta chiamato 'word diff') divide il testo in base agli spazi bianchi — migliore per la prosa dove le modifiche avvengono spesso all'interno delle frasi.
  • Carattere per carattere è la granularità più fine, utilizzata internamente dalla maggior parte degli strumenti di diff per evidenziare l'esatta sottostringa che differisce all'interno di una riga modificata.

Lo strumento sopra mostra il diff di riga come vista principale e il diff di carattere come evidenziazione sulle righe modificate — lo stesso approccio a due livelli utilizzato da VS Code, JetBrains e GitHub.

Usa il diff di riga per la revisione del codice, il diff di parola per la modifica di testi in prosa e il diff di carattere solo per brevi confronti (singole frasi, identificatori, URL).

Code Diff Checker: Confronto di Codice Sorgente per JavaScript, Python, Go e Altri

Il codice sorgente è il caso d'uso più comune per il diff: ogni revisione del codice, ogni PR e ogni commit di git comporta il confronto di codice.

Il diff checker gestisce qualsiasi linguaggio di programmazione perché l'algoritmo LCS è indipendente dal linguaggio: JavaScript, TypeScript, Python, Go, Rust, Java, Kotlin, Swift, C, C++, C#, PHP, Ruby, Scala, Elixir, Clojure, script di shell, Dockerfiles, Terraform HCL, SQL — funzionano tutti allo stesso modo.

Migliore pratica per i diff di codice: formatta entrambi i lati con lo stesso formattatore di codice (Prettier per JS/TS, Black per Python, gofmt per Go, rustfmt per Rust) prima di incollare, in modo che le differenze di spazi bianchi e stile non inquinino il vero diff semantico. Se non puoi riformattare, usa l'opzione 'ignora spazi bianchi' per saltare le differenze di spazi bianchi iniziali/finali.

Per confrontare codici di linguaggi diversi (ad esempio confrontando un'implementazione in Python con una versione in Go), il diff di riga funziona comunque ma la percentuale di somiglianza sarà fuorviante: l'unità significativa è la somiglianza strutturale, non la sovrapposizione delle righe.

JSON Diff Checker: Confronta Oggetti, Array e File di Configurazione JSON

Il diff JSON è uno dei casi d'uso più richiesti: confrontare risposte API, file di configurazione, file package.json ed esportazioni di dati strutturati.

Passaggio preliminare importante: formatta entrambi i lati in modo identico. Applica una formattazione leggibile (pretty-print) con la stessa indentazione (in genere 2 o 4 spazi) e ordina le chiavi degli oggetti in ordine alfabetico. Senza normalizzazione, un documento JSON strutturalmente identico può produrre un diff estremamente rumoroso solo perché le chiavi sono in un ordine diverso.

Strumenti per la normalizzazione:

  • jq con il flag --sort-keys
  • json.dumps di Python con sort_keys=True
  • jsonformatter.org

Per un diff JSON semanticamente consapevole (in cui {a:1, b:2} e {b:2, a:1} sono uguali), strumenti dedicati come json-diff (npm), jq o JSON Patch RFC 6902 producono risultati migliori rispetto al diff di riga.

Lo strumento di diff di riga sopra funziona bene per il JSON quando entrambi i lati sono pre-normalizzati; se hai regolarmente bisogno di un diff JSON semantico, prendi in considerazione una libreria compatibile con JSON nel tuo stack.

YAML e CSV Diff: Confronta Dati Strutturati e Differenze di Configurazione

YAML e CSV sono formati orientati alle righe che si confrontano in modo pulito con strumenti basati su righe, solitamente con meno rumore rispetto al JSON perché YAML non ha parentesi graffe e CSV ha una struttura di righe coerente.

Suggerimenti per YAML diff: assicurati che entrambi i lati utilizzino la stessa indentazione (2 o 4 spazi fanno la differenza; in YAML gli spazi bianchi sono significativi), la stessa convenzione di ordinamento delle chiavi e lo stesso stile di virgolette per le stringhe. Per i manifest di Kubernetes, i file Docker Compose e i YAML dei flussi di lavoro CI, il diff di riga sopra è lo strumento standard utilizzato in ogni revisione del codice.

Suggerimenti per CSV diff: assicurati che entrambi i file utilizzino lo stesso delimitatore (virgola, punto e virgola, tabulazione), le stesse terminazioni di riga (LF vs CRLF — molti CSV di Excel usano CRLF), lo stesso ordine delle colonne e intestazioni corrispondenti.

Per CSV di grandi dimensioni (>10.000 righe), strumenti specializzati come csvdiff (Aswinkarthik) o daff (paulfitz) producono diff strutturati che mostrano quale riga e colonna sono cambiate; per file più piccoli il diff di riga sopra è veloce e semplice.

Come Funzionano gli Strumenti di Diff: Spiegazione dell'Algoritmo LCS e Myers Diff

Tutti i moderni strumenti di diff si affidano alla famiglia di algoritmi LCS (Longest Common Subsequence).

L'algoritmo di diff originale è stato pubblicato da James Hunt e Doug McIlroy ai Bell Labs nel 1976 — lo stesso articolo che ha generato il comando 'diff' di Unix ancora oggi in uso. Nel 1986, Eugene Myers ha pubblicato 'An O(ND) Difference Algorithm and Its Variations', che ha ottimizzato l'LCS per il caso comune di piccole differenze in grandi input.

L'algoritmo di Myers viene eseguito in tempo O((N+M)D) dove N+M è la dimensione totale dell'input e D è il numero di modifiche — molto più veloce del diff oracolare O(N×M) per i tipici diff del mondo reale (dove D è piccolo rispetto a N+M). GNU diff, git diff, libxdiff (utilizzato da Mercurial, Subversion, GitHub) implementano tutti Myers o le varianti strettamente correlate 'patience diff' e 'histogram diff'.

Il diff checker sopra utilizza un'implementazione LCS in JavaScript ottimizzata per le prestazioni del browser — abbastanza veloce per input fino a diversi megabyte per lato.

Visualizzatore Side by Side Diff vs Unified Diff: Quando Usare Ciascun Formato

Esistono due modi principali per visualizzare un diff: affiancato (split view) e unificato.

Affiancato posiziona la versione originale e quella modificata in due colonne con le modifiche allineate orizzontalmente — più facile da leggere per un essere umano perché puoi vedere entrambe le versioni contemporaneamente e il raggruppamento visivo rende la struttura ovvia. Questa è la visualizzazione predefinita negli IDE (VS Code, IntelliJ), nelle PR di GitHub (in modalità 'split') e nella maggior parte degli strumenti di diff online.

Unified diff accumula le righe rimosse e aggiunte in un'unica colonna con prefissi '-' e '+' più 3 righe di contesto invariato sopra e sotto — più compatto, programmabile (è il formato di file patch consumato da 'git apply' e 'patch') e predefinito negli strumenti da riga di comando e nella revisione del codice basata su e-mail (mailing list del kernel Linux, ecc.).

Scegli la modalità affiancata per la revisione visiva di modifiche da piccole a medie; scegli quella unificata per la visualizzazione compatta di grandi riscritture, per la copia come file patch o per la condivisione in contesti di solo testo (chat, e-mail, terminale).

Confronta Due Documenti per Trovare Differenze: Scrittura, Modifica e Plagio

Il confronto di documenti copre una vasta gamma di casi: tracciare ciò che un editor ha modificato in una bozza, confrontare due versioni di un contratto, verificare cosa è stato parafrasato rispetto a cosa è stato copiato (rilevamento del plagio leggero) o controllare la deriva di traduzione.

Usa il diff checker per qualsiasi documento in solo testo. Per diversi formati sorgente:

  • Per file Microsoft Word .docx, esporta prima in testo semplice (File > Salva con nome > Testo semplice in Word, o Formato > Testo semplice in LibreOffice). Perderai la formattazione (grassetto, corsivo, intestazioni) ma catturerai ogni modifica al testo.
  • Per documenti PDF, usa prima un convertitore da PDF a testo (pdftotext da poppler-utils o strumenti basati su browser), quindi confronta il testo estratto.
  • Per Google Docs, usa la Cronologia delle versioni integrata (File > Cronologia versioni > Visualizza cronologia versioni) che mostra nativamente i diff con tracciamento degli autori.

Per prosa di grande formato in cui le interruzioni di riga sono arbitrarie, considera gli strumenti di diff a livello di parola (diff --word-diff in git) — ignorano l'andamento a capo delle righe e fanno emergere le reali modifiche a livello di parola.

Privacy del Diff Checker Online: Perché il Confronto nel Browser Batte gli Strumenti Cloud

La privacy è importante quando si confrontano codice proprietario, documentazione interna, registri finanziari, dati dei clienti o qualsiasi testo riservato. Molti strumenti di diff online caricano il testo di input sul proprio server per l'elaborazione — comodo ma un vero rischio per contenuti sensibili.

Il diff checker su questa pagina è completamente lato client: l'algoritmo LCS viene eseguito in JavaScript all'interno del tuo browser, nessuna chiamata fetch() lascia mai il tuo dispositivo, nessun registro viene creato su alcun server. Verificalo tu stesso aprendo DevTools > scheda Network e incollando il testo: vedrai zero richieste in uscita.

Per la massima privacy su contenuti altamente sensibili, usa uno strumento locale che non tocchi mai la rete:

  • GNU diff (preinstallato su Linux/macOS)
  • git diff (qualsiasi repository)
  • Diff integrato di VS Code
  • Diff degli IDE JetBrains
  • Beyond Compare

Per confronti occasionali di testi meno sensibili, uno strumento verificato basato su browser come quello sopra offre la comodità di uno strumento web unita alla privacy di uno locale.

Strumento di Confronto File per Sviluppatori: Code Review, Conflitti di Merge e PR

Per gli sviluppatori, il diff è un'infrastruttura quotidiana — code review, revisione di PR, risoluzione dei conflitti di merge, confronto delle configurazioni tra ambienti, debug delle regressioni del tipo 'cosa è cambiato'.

Usa git diff per le modifiche tracciate (git diff, git diff --staged, git diff main..feature, git diff HEAD~3); usa il diff checker online sopra per confronti ad hoc (qualcuno incolla uno snippet su Slack, confronti il dump di una variabile d'ambiente da staging a prod, controlli la configurazione locale di un collega rispetto alla tua).

Per la risoluzione dei conflitti di merge, gli strumenti di diff a tre vie (kdiff3, p4merge, vista a tre vie integrata di VS Code) superano il diff a due vie perché mostrano l'antenato comune oltre a entrambi i lati.

Per la revisione del codice su larga scala, le PR di GitHub, i MR di GitLab e Gerrit utilizzano tutti lo stesso diff LCS basato su righe sotto il cofano — ciò che vedi in una PR è lo stesso algoritmo che puoi eseguire localmente con git diff o incollare nello strumento online sopra. Il diff è riproducibile tra vari strumenti: gli stessi input producono sempre lo stesso diff.

Diff Checker vs Git Diff: Quando Usare Ciascuno nel Lavoro di Sviluppo Quotidiano

Entrambi producono diff basati su LCS matematicamente equivalenti — l'algoritmo sottostante è lo stesso.

Usa git diff quando:

  • hai file in un repository git
  • vuoi confrontare commit/branch/modifiche in staging
  • devi creare uno script per il diff (controlli CI, hook di pre-commit)
  • hai bisogno di un confronto basato sulla cronologia (git log, git blame)
  • oppure stai producendo un file patch (git format-patch)

Usa un diff checker online quando:

  • hai testo grezzo che non si trova in un repository (uno snippet da una chat, una risposta API, un dump di configurazione)
  • desideri una rapida visualizzazione affiancata senza configurare un repository
  • stai confrontando sistemi in cui git non è disponibile (qualcuno su un Chromebook, una riunione di revisione del codice)
  • oppure il contenuto è sensibile e desideri uno strumento verificato solo per browser senza chiamate di rete

Entrambi gli strumenti appartengono al kit di strumenti di uno sviluppatore; nessuno sostituisce l'altro. Le funzionalità chiave dello strumento online sono l'assenza di configurazione e la visualizzazione affiancata; le funzionalità chiave di git sono la consapevolezza della cronologia e l'integrazione nell'ecosistema.

code

Embed this Diff Checker on your site

Free for any site. Copy the snippet below and paste into your HTML — no attribution required beyond the built-in credit link.

<iframe src="https://calculators.im/embed/diff-checker" width="100%" height="720" style="border:0;max-width:100%;" loading="lazy" title="Diff Checker by Calculators.im"></iframe>
<p style="font-size:12px;text-align:center;color:#64748b;margin-top:6px;">Powered by <a href="https://calculators.im/diff-checker?utm_source=embed&utm_medium=snippet&utm_campaign=diff-checker">Diff Checker</a> by Calculators.im</p>
open_in_new Preview embed Auto-resizing iframe. Mobile responsive. Works with WordPress, Ghost, Webflow, and plain HTML.

Frequently Asked Questions

sell

Tags