Wie Sie Text vergleichen und Unterschiede finden

· 5 Min. Lesezeit

Herauszufinden, was sich zwischen zwei Versionen eines Dokuments, einer Konfigurationsdatei oder eines Codeabschnitts geändert hat, ist eine häufige Aufgabe. Beide Versionen zu lesen und Unterschiede manuell zu erkennen, ist langsam und unzuverlässig, besonders bei langen Texten. Ein Diff-Prüfer macht es sofort und hebt jede Änderung hervor. Derselbe Algorithmus, der Gits Commit-Historie, GitHubs Pull-Request-Überprüfungsoberfläche und den Unix-diff-Befehl antreibt, liegt jedem visuellen Diff-Werkzeug zugrunde, das Sie jemals verwendet haben.

So vergleichen Sie Text

  1. Fügen Sie beide Versionen ein: geben Sie den Originaltext links und den modifizierten Text rechts ein.
  2. Überprüfen Sie die Hervorhebungen: hinzugefügte Zeilen werden grün angezeigt, entfernte Zeilen rot. Modifizierte Zeilen zeigen sowohl die alte als auch die neue Version.
  3. Exportieren oder kopieren: kopieren Sie die Diff-Ergebnisse oder laden Sie einen Bericht herunter.

Der Vergleich findet statt, sobald beide Bereiche Text haben. Es gibt keine Vergleichen-Schaltfläche zum Klicken; Bearbeitungen auf beiden Seiten führen den Diff in Echtzeit erneut aus, was nützlich ist, wenn Sie an einer Korrektur iterieren und den Effekt sofort sehen möchten.

Einen Diff lesen

Die Diff-Ausgabe verwendet ein einfaches Farbsystem:

Dies ist die gleiche Konvention, die von Git, GitHub, GitLab, Bitbucket und jedem wichtigen Versionskontrollsystem verwendet wird. Die Farben sind nicht willkürlich: Grün für Hinzufügungen und Rot für Löschungen ist seit den 1970er Jahren der Standard, als die ersten visuellen Diff-Werkzeuge (wie der Befehl sdiff) auf Unix ausgeliefert wurden. Moderne Werkzeuge fügen manchmal Gelb oder Orange für "geändert" hinzu (eine Zeile, die in beiden existiert, aber anders ist), aber Rot und Grün bleiben die universellen Hinzufügungen/Löschungen.

Eine kurze Geschichte von diff

Der diff-Algorithmus wurde erstmals von Douglas McIlroy bei Bell Labs 1976 veröffentlicht und baut auf Eugene Myers' späterer Verfeinerung (dem O(ND)-Algorithmus, 1986) auf, die diff schnell genug für interaktive Nutzung machte. McIlroys ursprünglicher Algorithmus wurde mit der Unix V7-Veröffentlichung 1979 publiziert und ist seitdem Teil jedes Unix-ähnlichen Betriebssystems. Der Myers-Algorithmus ist das, was moderne diff-Implementierungen antreibt: Gits diff, GitHubs Weboberfläche, jede diff-GUI von Beyond Compare bis VS Code.

Das visuelle Seite-an-Seite-Diff-Format geht dem Algorithmus voraus: es lässt sich auf manuelle Korrekturkonventionen im Verlagswesen zurückführen (zwei Spalten Text mit Änderungen am Rand markiert). Die Software der 1970er Jahre automatisierte einfach, was Redakteure seit Jahrhunderten auf Papier taten. Das "Unified Diff"-Format (das mit den --- und +++ Headern, das Sie in Patch-Dateien sehen) wurde 1990 von GNU diff eingeführt und ist jetzt der De-facto-Standard für das Teilen von Änderungen per Text.

Wann Diff-Prüfung nützlich ist

Zeilenbasierter vs. zeichenbasierter Diff

Der Diff-Prüfer verwendet zeilenbasierten Vergleich, was bedeutet, dass er jede Zeile als kleinste Einheit des Unterschieds behandelt. Wenn Sie ein einzelnes Wort in einer Zeile ändern, wird die gesamte Zeile als geändert angezeigt (die alte Zeile rot, die neue Zeile grün) und Sie müssen den Unterschied auf Wortebene selbst erkennen.

Zeilenbasierter Diff ist der Standard für Code- und Konfigurationsdateien, weil diese typischerweise zeilenorientiert sind (eine Anweisung pro Zeile, eine Konfigurationsoption pro Zeile). Er ist schnell, vorhersehbar und entspricht der Funktionsweise von Git und jedem Code-Review-Werkzeug.

Für Prosa-Vergleiche, bei denen Änderungen auf Zeilenebene zu grob sind, bieten einige Werkzeuge Wort- oder Zeichen-Diff, der nur die geänderten Wörter innerhalb einer Zeile hervorhebt. Das ist präziser, aber schwieriger für Code zu lesen. Wenn Sie einen Wort-Diff benötigen, suchen Sie nach einem Werkzeug, das speziell als "word diff" oder "intra-line diff" gekennzeichnet ist.

Datenschutz und vertraulicher Inhalt

Der Diff-Prüfer läuft vollständig in Ihrem Browser. Beide Texte bleiben auf Ihrem Gerät; nichts wird hochgeladen. Das ist wichtig, weil der Text, den Sie am meisten vergleichen wollen, oft vertraulich ist: Verträge in Verhandlung, Pressemitteilungsentwürfe, interne Richtliniendokumente, Quellcode unter NDA. Cloud-Diff-Werkzeuge (DiffChecker.com, JsonDiff.com, Online-Merge-Tools) erfordern das Hochladen beider Texte auf einen Drittanbieter-Server, was genau das ist, was Sie für sensible Inhalte vermeiden wollen. Browserbasierter Diff hat keine dieser Belastungen.

Die Sitzung ist auch zustandslos: nichts bleibt nach dem Schließen des Tabs erhalten. Wenn Sie eine Aufzeichnung des Diffs benötigen, kopieren Sie die Ausgabe oder machen Sie einen Screenshot, bevor Sie wegnavigieren.

Häufige Fallstricke

Tipps

Häufig gestellte Fragen

Vergleicht der Diff-Prüfer Zeichen für Zeichen?

Er vergleicht zeilenweise, derselbe Ansatz, den Git und die meisten professionellen Diff-Tools verwenden. Wenn sich auch nur ein Zeichen in einer Zeile ändert, wird die gesamte Zeile als geändert hervorgehoben.

Gibt es eine Größenbegrenzung?

Es gibt keine harte Grenze, doch sehr große Texte (über 10.000 Zeilen) können einen Moment zur Verarbeitung benötigen, da der Vergleich vollständig in Ihrem Browser läuft.

Kann ich Code-Dateien vergleichen?

Ja. Der Diff-Prüfer funktioniert mit jedem Text, einschließlich Quellcode. Syntaxhervorhebung erleichtert das Lesen von Code-Diffs.

Wird mein Text an einen Server gesendet?

Nein. Der Vergleich erfolgt in Ihrem Browser. Ihr Text verlässt Ihr Gerät nie.