Suchen Sie die installierte ausführbare Datei
Die Desktop-Binärdatei verwendet --cli für den Befehlszeilenvorgang, sodass ein normaler Start grafisch bleibt. Eine Microsoft Store-Installation deklariert den Ausführungsalias diff-anything.exe; Windows-Benutzer können es ausführen, wenn dieser Alias unter App-Ausführungsaliasen aktiviert ist.
Die Mac App Store-Version läuft in der App Sandbox von Apple, die sie auf Dateien und Ordner beschränkt, die Sie in der App auswählen. Dieses Handbuch behandelt daher die Befehlszeilen-, Git- und CI-Nutzung mit der Windows-Version.
- Windows: diff-anything.exe --cli left.json right.json
- Überprüfen Sie die installierte Version: diff-anything.exe --cli --version
Geben Sie den expliziten CLI-Modus ein
Geben Sie zwei Quellpfade an und wählen Sie optional --mode auto|text|json|yaml|toml|ini|plist|xml|csv|env|http|api|notebook|sqlite|folder|archive|document|binary, --format summary|terminal|json und --exit-code. Gespeicherte Desktop-Profile sind keine CLI-Optionen.
Ein interaktives Terminal zeigt standardmäßig die Ansicht mit Syntaxhervorhebung; bei umgeleiteter Ausgabe erscheint eine kurze Zusammenfassung. Verwenden Sie --color auto|always|never, --language zur Wahl der Sprache und --context für die Anzahl unveränderter Zeilen um jeden Änderungsblock.
CLI Dokumentmodus vergleicht extrahierte Inhalte; Die gerenderte Seite PDF Visual Diff ist eine Desktop-Funktion. Für automatisierte Layoutprüfungen rendern Sie entsprechende PDF-Seiten in Bilder gleicher Größe, vergleichen Sie jedes Paar mit dem Pro-Binärmodus und lesen Sie die Bildmetriken aus JSON.
Textvergleiche nutzen die Ignore-Optionen der App: --ignore-text und --ignore-lines mit einem regulären Ausdruck, --ignore-preset für integrierte Zeitstempel- und ID-Muster, --ignore-comments und --ignore-columns, wie 1-6 oder 73-.
Die kostenlose Nutzung von CLI ist auf Text, JSON und Notebooks, Dateien bis zu 5 MiB pro Seite und 10 neue Vergleichssitzungen pro lokalem Kalendertag beschränkt. Spezialmodi, Berichte, das Anwenden von Patches und alle Batch-Manifeste erfordern Pro.
- Terminal: diff-anything --cli --format terminal --color auto left.ts right.ts
- JSON: diff-anything --cli --format json --mode json left.json right.json
- Gerendertes Seitenbild: diff-anything --cli --mode binary --format json reference.png candidate.png
- Verwenden Sie absolute oder Workflow-stabile Pfade in der Automatisierung.
Exit-Codes interpretieren
Fügen Sie für einen einzelnen Vergleich --exit-code hinzu, wenn die Automatisierung Unterschiede benötigt, um das Prozessergebnis zu beeinflussen. Ohne sie gibt ein gültiger Einzelvergleich Null zurück, selbst wenn Änderungen gefunden werden.
Verwenden Sie für eine API-Schemaprüfung stattdessen --mode api --fail-on breaking: Identische oder äquivalente Schemata werden bestanden, nicht-breaking-Änderungen sind zulässig und der Prozess gibt 1 nur für Breaking-Changes oder Änderungen zurück, die die Regeln nicht klassifizieren konnten.
Der Batch-Modus gibt Null zurück, wenn jeder Fall seine FailOn-Prüfung besteht, eins, wenn ein Fall die Prüfung nicht besteht oder nicht verglichen werden konnte, und zwei, wenn der Batch nicht aufgerufen werden kann oder sein Manifest nicht gelesen oder analysiert werden kann.
- Single mit --exit-code: 0 sauber, 1 Unterschiede, 2 ungültiger Aufruf, unlesbare Eingabe oder Vergleichsfehler.
- Einzeln mit --mode api --fail-on breaking: 1 nur für Breaking oder nicht klassifizierte API-Änderungen.
- Batch: 0 jeder Fall besteht, 1 ein Fall besteht seine FailOn-Prüfung nicht oder konnte nicht verglichen werden, 2 Manifest- oder Aufruffehler.
Das passende Ausgabeformat wählen
Das Terminalformat gibt einem Benutzer ein Unicode-sicheres, syntaxhervorgehobenes Diff mit Zeilennummern und kompakten Blöcken. Die prägnante Zusammenfassung eignet sich für normale Protokolle, während JSON strukturierte Ergebnisse für ein anderes Tool bewahrt.
Batch-Workflows akzeptieren YAML- oder JSON-Manifeste und können Zusammenfassungen, JSON, JUnit oder SARIF ausgeben. JUnit passt zu Testberichtoberflächen; SARIF eignet sich für Code-Scanning- und statische Analyseoberflächen, die den Standard verstehen. Halten Sie Diagnosemeldungen von der maschinenlesbaren Ausgabe getrennt, damit Parser gültige Dokumente erhalten.
Konfigurieren Sie das Git-Difftool
Registrieren Sie Diff Anything als Git-Diff-Tool und übergeben Sie die LOCAL- und REMOTE-Pfade von Git an den expliziten CLI-Modus. Fügen Sie nicht --exit-code zum difftool-Befehl hinzu: Git erwartet, dass das Tool ein geändertes Paar erfolgreich verarbeitet.
Git erstellt für einige Vergleiche temporäre Dateien. Überprüfen oder bearbeiten Sie sie daher mithilfe des vom ausgewählten Modus unterstützten Workflows, anstatt davon auszugehen, dass eine temporäre Quelle beibehalten werden sollte.
- git config --global diff.tool diff-anything
- git config --global difftool.diff-anything.cmd 'diff-anything.exe --cli "$LOCAL" "$REMOTE"'
Verwenden Sie Diff Anything für Git Diff
Damit Git Diff selbst Diff Anything verwendet, definieren Sie es als Diff-Treiber und weisen Sie es Dateitypen in der .gitattributes-Datei des Repositorys zu. Git führt den Treiber nur für die ihm zugewiesenen Dateien aus, benennt sie nach ihren Repository-Pfaden und zeigt Modusänderungen und Umbenennungen auf die Art und Weise an, wie es sein eigenes Diff tut.
git diff verwendet den Treiber für die zugewiesenen Dateien; git log -p und git show verwenden es mit --ext-diff. Lassen Sie --exit-code aus einem Diff-Treiber weg, da Git bei der ersten geänderten Datei stoppt, wenn ein Treiber mit einem Status ungleich Null beendet wird. Beim kostenlosen Plan wird eine Datei, die der Plan nicht abdeckt, als nicht verglichen aufgeführt und git diff fährt mit dem Rest fort.
- git config --global diff.diff-anything.command 'diff-anything --cli --format terminal --color auto'
- .gitattributes: *.json diff=diff-anything
- .gitattributes: *.yaml diff=diff-anything
- diff-anything --cli --integration-help druckt diese Konfiguration
Mit Git zusammenführen
Mit Pro ist Diff Anything sowohl ein Merge-Treiber als auch ein Merge-Tool. Der Zusammenführungstreiber führt die Dateien zusammen, die Sie ihm in .gitattributes zuweisen, wenn Git zusammengeführt wird: Eine JSON-, YAML-, TOML- oder INI-Datei wird anhand ihrer Daten zusammengeführt, Konfliktmarkierungen umgeben nur die Werte, die auf beiden Seiten unterschiedlich geändert wurden, und der Treiber gibt 1 zurück, solange Konflikte bestehen bleiben. --name %P gibt ihm den eigenen Namen der Datei, der über ihr Format entscheidet.
Das Zusammenführungstool ist die App selbst. git mergetool startet es für jede in Konflikt stehende Datei und wartet: Das Fenster zeigt die Basis-, lokale und Remote-Version und das Ergebnis an, wobei die Konflikte Git als strukturierte Konflikte belassen werden. Speichern und schließen schreibt die zusammengeführte Datei und beendet sie mit 0; Abbrechen oder Schließen des Fensters wird mit 1 beendet und die Datei bleibt so, wie Git sie geschrieben hat. Die Microsoft Store-Version auf Windows ist das Zusammenführungstool. Die Mac App Store-Version kann nicht von Git gestartet werden. Öffnen Sie daher auf einem Mac die Konfliktdatei in der App und wählen Sie „Auflösen“.
- git config --global merge.diff-anything.driver 'diff-anything --cli --merge %O %A %B --output %A --name %P'
- git config --global merge.tool diff-anything
- git config --global mergetool.diff-anything.cmd 'diff-anything --merge-tool "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
- git config --global mergetool.diff-anything.trustExitCode true
- .gitattributes: *.toml merge=diff-anything
Batch-Manifeste ausführen
Ein Pro-Batchmanifest kann ein YAML- oder JSON-Objekt mit einem Vergleichsarray oder einem Vergleichsarray der obersten Ebene sein. Jedes Element unterstützt Name, links, rechts, einen optionalen Modus, failOn (beliebig oder brechend) und warningsAsDifferences; Desktop-Profilregeln sind keine Batch-Manifestfelder und ein falsch geschriebener Schlüssel wird als Fehler gemeldet.
Verwenden Sie --format junit oder --format sarif für etablierte Überprüfungsoberflächen oder --format json für das detaillierte Ergebnis. Schreiben Sie den Bericht mit --output FILE, das UTF-8 schreibt; In Windows PowerShell 5.1 schreibt die Umleitung mit > UTF-16, was viele CI-Tools ablehnen. Für API-Fälle mit failOn:breaking listet JUnit die Breaking Changes mit ihren Regelcodes auf und SARIF meldet jedes Ergebnis unter seinem Regelcode.
- Manifestelement: { „name“: „API schema“, „left“: „baseline/openapi.json“, „right“: „build/openapi.json“, „mode“: „api“, „failOn“: „breaking“ }
- JUnit-Datei: diff-anything --cli --batchVergleiche.json --format junit --output report.xml
- SARIF-Datei: diff-anything --cli --batchVergleiche.json --format sarif --output report.sarif

Fehler in automatisierten Abläufen untersuchen
Reproduzieren Sie die genauen Pfade, den Modus, das Format und die Exit-Code-Option lokal. Prüfen Sie, ob der Prozess beide Quellen lesen kann und ob die Shell eine umgeleitete Ausgabedatei erstellen kann.
CLI-Vergleiche verwenden ihre integrierten Standardoptionen; Sie laden keine Desktop-Profile. Wenn die Ergebnisse je nach Maschine unterschiedlich sind, überprüfen Sie Quellbytes, Zeilenenden, Pfade und App-Version, bevor Sie die Erwartungen ändern.
Kostenlos & Pro: Was ist enthalten
Verfügbar im Mac App Store und Microsoft Store. Mit der kostenlosen Desktop-Nutzung können Sie jede Vergleichs-Engine für Dateien bis zu 5 MiB pro Seite und 10 neue Vergleichssitzungen pro lokalem Tag ausprobieren; Sammlungsvorschauen zeigen die ersten 100 Elemente, binäre Vergleiche die ersten 100 Byte-Unterschiede und PDF-Vorschauen die ersten drei Seiten. Der Nur-Text-, JSON- und Jupyter-Notebook-Vergleich ist vollständig und das Öffnen von Dateien über den Finder oder den Datei-Explorer, diffanything://-Links und AppleScript ist kostenlos. Die kostenlose CLI unterstützt Text, JSON und Notebooks. Durch einen einmaligen Pro-Kauf werden die Vorschau- und Sitzungsbeschränkungen aufgehoben und größere Quellen innerhalb technischer Grenzen, gespeicherte Profile und Verlauf, Speichern von Ordner-Snapshots, Exportieren und Drucken von Berichten, JSON-Patch-Export, Anwenden von Patches, Drei-Wege-Zusammenführung und Konfliktlösung, der Git-Merge-Treiber und das Merge-Tool, Ordnersynchronisierung, Batch-Manifeste, vertrauenswürdige Präprozessoren und alle CLI-Modi freigeschaltet.