Kodesammenligning (diff)
Sammenlign to versioner af kode side om side eller indlejret, med syntaksfremhævning, linjenumre, valg for mellemrum og en unified diff, du kan kopiere.
Sådan sammenligner du to stykker kode
- Indsæt den gamle version i Original kode og den nye version i Ændret kode.
- Vælg Sprog, eller lad Genkend automatisk stå: Værktøjet gætter ud fra koden og viser det genkendte sprog ved siden af statistikken.
- Vælg en Visning: Side om side eller Indlejret (unified).
- Indstil de valg, du har brug for: Ignorér mellemrum og indrykning, Ignorér store og små bogstaver, Fremhæv ændrede ord og Vis kun ændringer (3 linjers kontekst).
- Klik på Sammenlign. Efter den første sammenligning følger resultatet dine rettelser, mens du skriver.
- Klik på Kopiér som unified diff eller Download .diff for at genbruge ændringen som en patch.
Byt sider bytter de to versioner, så tilføjelser bliver til sletninger og omvendt.
Sådan læser du forskellen
Fjernede linjer er farvet røde og hører til originalen. Tilføjede linjer er farvet grønne og hører til den nye version. Hver linje beholder sit linjenummer fra sin egen fil, så du kan gå direkte til den i din editor.
- Side om side sætter de to filer i to nummererede kolonner. En ændret linje står ved siden af sin nye version. Med Fremhæv ændrede ord markeres de ord, der er ændret inde i linjen. Uden den beholder begge linjer deres fulde syntaksfarver.
- Indlejret (unified) viser en enkelt kolonne som i et code review: For hver ændret blok kommer de fjernede linjer (−) først og derefter de tilføjede linjer (+), med både de gamle og de nye linjenumre.
- Vis kun ændringer (3 linjers kontekst) folder lange uændrede strækninger sammen til en markering som »⋯ N uændrede linjer«, hvilket gør store filer meget nemmere at gennemgå.
Statistiklinjen tæller tilføjede, fjernede og uændrede linjer.
Syntaksfremhævning
Fremhævningen sker i din browser med highlight.js. Kun grammatikken for det valgte sprog indlæses, når du sammenligner første gang, så siden forbliver let. Understøttede sprog omfatter JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell og Markdown. Den automatiske genkendelse bruger enkle spor (nøgleord, parenteser, JSON-parsing). Hvis den gætter forkert, kan du selv vælge sproget eller vælge Almindelig tekst.
Mellemrum, indrykning og linjeskift
Ignorér mellemrum og indrykning sammenligner linjerne, efter at de er trimmet, og efter at rækker af mellemrum og tabulatorer er slået sammen, så en fil, der er indrykket om fra 2 til 4 mellemrum eller fra tabulatorer til mellemrum, ikke viser nogen forskel. Linjeskift fra Windows (CRLF) og Unix (LF) normaliseres før sammenligningen, så en fil, hvor kun linjeskiftene er ændret, meldes som identisk. Husk, at mellemrum kan have betydning i Python, YAML og Makefiles: Slå valget fra, når indrykning er afgørende.
Formatet unified diff
Den eksporterede patch bruger det standardiserede unified-format, som git apply, patch og værktøjer til code review kan læse: en header med de to filnavne og derefter hunks, der begynder med @@ -a,b +c,d @@, og tre linjers kontekst omkring hver ændring. Filerne hedder original og changed med en filendelse til sproget.
Ofte stillede spørgsmål
Bliver min kode uploadet til en server?
Nej. Både sammenligningen og fremhævningen kører lokalt i din browser, og koden forlader aldrig din enhed.
Hvordan adskiller det sig fra tekstsammenligningen?
Det bruger den samme linje-for-linje-sammenligning, men tilføjer syntaksfremhævning, en unified-visning, sammenfoldning af kontekst og håndtering af mellemrum, der passer til kode.
Hvorfor vises to linjer som ændrede, når de ser ens ud?
De adskiller sig sandsynligvis i usynlige tegn: mellemrum til sidst i linjen, tabulatorer i stedet for mellemrum eller et hårdt mellemrum. Sæt kryds ved Ignorér mellemrum og indrykning for at bekræfte det.
Kan jeg anvende den downloadede patch med Git?
Ja. Gem den, og kør patch original.js < changes.diff, eller tilpas filnavnene i headeren og brug git apply.
Hvor store kan uddragene være?
Flere tusinde linjer sammenlignes hurtigt. Hvis to meget store filer er helt forskellige, stopper værktøjet efter nogle få sekunder og beder dig sammenligne mindre dele.
Relaterede værktøjer
- Sammenlign tekster Sammenlign to tekster, og se hver forskel side om side eller indlejret, efter linje, ord eller tegn. Privat diff-værktøj, der kører i din browser.
- JSON-formatering og -validering Gratis JSON-formatering og -validering, der gør JSON pæn, minificerer og tjekker den i din browser, med syntaksfejl angivet med linje og kolonne.
- Regex-tester Test regulære udtryk i JavaScript live med fremhævede match, indfangende grupper, erstatning og en forklaring i klart sprog af hvert led i mønsteret.