Comparare cod (diff)
Compară două versiuni de cod una lângă alta sau unificat, cu evidențierea sintaxei, numere de linie, opțiuni pentru spații și diff de copiat sau descărcat.
Cum compari două bucăți de cod
- Lipește versiunea veche în Codul original și versiunea nouă în Codul modificat.
- Alege Limbaj sau lasă Detectează automat: instrumentul ghicește din cod și afișează limbajul detectat lângă statistici.
- Alege o Afișare: Una lângă alta sau Într-o coloană (unificat).
- Setează opțiunile de care ai nevoie: Ignoră spațiile și indentarea, Ignoră diferența dintre majuscule și minuscule, Evidențiază cuvintele modificate și Arată doar modificările (3 linii de context).
- Apasă Compară. După prima comparare, rezultatul urmărește modificările tale pe măsură ce scrii.
- Apasă Copiază ca diff unificat sau Descarcă .diff pentru a refolosi modificarea ca patch.
Inversează părțile schimbă între ele cele două versiuni, ceea ce transformă adăugările în ștergeri și invers.
Cum citești diferențele
Liniile eliminate sunt colorate în roșu și aparțin originalului; liniile adăugate sunt colorate în verde și aparțin versiunii noi. Fiecare linie își păstrează numărul din propriul fișier, așa că poți sări direct la ea în editor.
- Una lângă alta pune cele două fișiere în două coloane numerotate. O linie modificată stă lângă versiunea ei nouă. Cu Evidențiază cuvintele modificate, cuvintele schimbate în interiorul liniei sunt marcate; fără ea, ambele linii păstrează culorile complete ale sintaxei.
- Într-o coloană (unificat) arată o singură coloană, ca într-o revizuire de cod: pentru fiecare bloc modificat vin mai întâi liniile eliminate (−), apoi cele adăugate (+), cu numerele vechi și noi de linie.
- Arată doar modificările (3 linii de context) restrânge porțiunile lungi nemodificate într-un marcaj „⋯ N linii nemodificate”, ceea ce face fișierele mari mult mai ușor de revizuit.
Linia de statistici numără liniile adăugate, șterse și nemodificate.
Evidențierea sintaxei
Evidențierea se face în browserul tău, cu highlight.js. Se încarcă doar gramatica limbajului ales, la prima comparare, așa că pagina rămâne ușoară. Printre limbajele acceptate se numără JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell și Markdown. Detectarea automată folosește indicii simple (cuvinte cheie, paranteze, analiza JSON); dacă ghicește greșit, alege tu limbajul sau selectează Text simplu.
Spații, indentare și sfârșituri de linie
Ignoră spațiile și indentarea compară liniile după ce le curăță la capete și reduce șirurile de spații și tab-uri, așa că un fișier reindentat de la 2 la 4 spații sau de la tab-uri la spații nu arată nicio diferență. Sfârșiturile de linie Windows (CRLF) și Unix (LF) sunt normalizate înainte de comparare, deci un fișier care și-a schimbat doar sfârșiturile de linie este raportat ca identic. Reține că spațiile pot conta în Python, YAML și Makefile: dezactivează opțiunea când indentarea este semnificativă.
Formatul diff unificat
Patch-ul exportat folosește formatul unificat standard, citit de git apply, patch și de uneltele de revizuire a codului: un antet cu cele două nume de fișier, apoi blocuri care încep cu @@ -a,b +c,d @@ și trei linii de context în jurul fiecărei modificări. Fișierele se numesc original și changed, cu o extensie potrivită limbajului.
Întrebări frecvente
Este codul meu încărcat pe un server?
Nu. Atât compararea, cât și evidențierea rulează local, în browserul tău; codul nu părăsește dispozitivul tău.
Cu ce diferă de instrumentul de comparare a textelor?
Folosește același motor de comparare linie cu linie, dar adaugă evidențierea sintaxei, afișarea unificată, restrângerea contextului și o tratare a spațiilor adaptată codului.
De ce două linii apar ca modificate, deși par identice?
Probabil diferă prin caractere invizibile: spații la sfârșit, tab-uri în loc de spații sau un spațiu inseparabil. Bifează Ignoră spațiile și indentarea pentru a confirma.
Pot aplica patch-ul descărcat cu Git?
Da. Salvează-l și rulează patch original.js < changes.diff sau adaptează numele fișierelor din antet și folosește git apply.
Cât de mari pot fi fragmentele?
Câteva mii de linii se compară rapid. Dacă două fișiere foarte mari sunt complet diferite, instrumentul se oprește după câteva secunde și îți cere să compari părți mai mici.
Instrumente similare
- Comparare texte (diff) Compară două texte și vezi fiecare diferență una lângă alta sau în același text, după linii, cuvinte sau caractere. Diff privat, care rulează în browserul tău.
- Formatare și validare JSON Formatator și validator JSON gratuit, care înfrumusețează, minifică și verifică JSON în browser, cu erori de sintaxă raportate pe linie și coloană.
- Tester regex Testează expresii regulate JavaScript în timp real, cu potriviri evidențiate, grupuri de captură, înlocuire și explicația fiecărui element.