Funktionsleitfaden macOSWindows

Drei Versionen zusammenführen und Konfliktmarkierungen in einem Fenster lösen

Mit Pro können Sie drei Versionen einer Datei in einem Fenster zusammenführen und dort jeden Konflikt lösen. JSON-, YAML-, TOML- und INI-Dateien werden anhand ihrer Daten, Wert für Wert, zusammengeführt, wobei die Kommentare und Formatierungen Ihrer Seite beibehalten werden. Konflikte treten nur dann auf, wenn beide Seiten denselben Wert unterschiedlich geändert haben. Eine Datei, die bereits Konfliktmarkierungen von Git, Mercurial oder Subversion enthält, zeigt an, wie viele Konflikte sie enthält; mit Pro öffnet „Auflösen“ sie im Zusammenführungsarbeitsbereich, und die aufgelöste Datei wird in ihrer eigenen Codierung und mit ihren eigenen Zeilenenden gespeichert. git mergetool öffnet jede Datei mit Konflikten im Merge-Fenster von Diff Anything und wartet auf „Speichern und schließen“, mit der Version aus dem Microsoft Store unter Windows und auf dem Mac über das kostenlose Befehlszeilenhilfsprogramm.

Funktionsübersicht

Wie kann ich das Three-Way-Merge- und Git-Merge-Tool in Diff Anything verwenden?

Mit Pro können Sie drei Versionen einer Datei in einem Fenster zusammenführen und dort jeden Konflikt lösen. JSON-, YAML-, TOML- und INI-Dateien werden anhand ihrer Daten, Wert für Wert, zusammengeführt, wobei die Kommentare und Formatierungen Ihrer Seite beibehalten werden. Konflikte treten nur dann auf, wenn beide Seiten denselben Wert unterschiedlich geändert haben. Eine Datei, die bereits Konfliktmarkierungen von Git, Mercurial oder Subversion enthält, zeigt an, wie viele Konflikte sie enthält; mit Pro öffnet „Auflösen“ sie im Zusammenführungsarbeitsbereich, und die aufgelöste Datei wird in ihrer eigenen Codierung und mit ihren eigenen Zeilenenden gespeichert. git mergetool öffnet jede Datei mit Konflikten im Merge-Fenster von Diff Anything und wartet auf „Speichern und schließen“, mit der Version aus dem Microsoft Store unter Windows und auf dem Mac über das kostenlose Befehlszeilenhilfsprogramm.

Das Anzeigen der Konflikte in einer Datei ist kostenlos. Um sie zu lösen, sind der Zusammenführungsarbeitsbereich, der Zusammenführungstreiber und das Zusammenführungstool Teil von Pro.

Das Merge-Tool funktioniert auch mit Mercurial, Subversion, Perforce und TFVC. Unter Windows ist die Version aus dem Microsoft Store selbst das Merge-Tool.

Die Version aus dem Mac App Store läuft in Apples App-Sandbox, daher kann ein Versionskontrollsystem sie nicht selbst als Merge-Tool starten. Mit dem installierten kostenlosen Befehlszeilenhilfsprogramm führen dieselben Git-Einstellungen das Hilfsprogramm aus, das die Dateien liest, die Zusammenführung in einem Fenster der App öffnet und die zusammengeführte Datei schreibt, wenn Sie „Speichern und schließen“ wählen. Ohne das Hilfsprogramm öffnen Sie die Datei mit Konflikten in der App und wählen „Auflösen“.

Drei-Wege-Zusammenführung mit Basis, unseren und ihren Änderungen sowie einem offenen Konflikt in der deutschen Oberfläche von Diff Anything.
Drei-Wege-Zusammenführung mit Basis, unseren und ihren Änderungen sowie einem offenen Konflikt in der deutschen Oberfläche von Diff Anything. Vollbild anzeigen

Der Zusammenführungsarbeitsbereich

Drei Versionen, ein Ergebnis, das Sie bearbeiten können

Für eine Zusammenführung sind drei Versionen erforderlich: das gemeinsame Original (Basis), Ihre Version (Unsere) und die andere Version (Ihre). Platzieren Sie „Unsere“ links und „Ihre“ rechts, öffnen Sie „Extras“, wählen Sie „Drei-Wege-Zusammenführung“ und wählen Sie „Basis“ aus oder fügen Sie sie ein. Änderungen, die nur auf einer Seite vorgenommen werden, werden automatisch kombiniert, ebenso wie Änderungen an einzelnen Wörtern derselben Zeile. Alles andere wird zu einem Konflikt, den Sie entscheiden.

Gehen Sie die Konflikte durch und wählen Sie „Unsere akzeptieren“, „Ihre akzeptieren“, „Unsere dann ihre“, „Ihre dann unsere“ oder „Basis verwenden“ oder bearbeiten Sie das Ergebnis direkt. Das Bedienfeld „Änderungen“ zeigt jede Seite im Vergleich zur Basis an, und das Ergebnis behält die Syntaxhervorhebung der Datei bei.

Datendateien zusammenführen

JSON, YAML, TOML und INI führen Wert für Wert zusammen

Zwei Personen, die unterschiedliche Einstellungen derselben Konfigurationsdatei bearbeiten, berühren häufig benachbarte Zeilen, und eine Zeilenzusammenführung meldet einen Konflikt, obwohl keiner vorhanden ist. Diff Anything führt stattdessen JSON-, YAML-, TOML- und INI-Dateien nach ihren Daten zusammen: Ein Wert, der nur auf einer Seite geändert wurde, übernimmt diese Änderung, wo immer sie ist, ein Wert, der auf beiden Seiten gleichermaßen geändert wurde, wird einmal übernommen, und nur ein Wert, der auf beiden Seiten unterschiedlich geändert wurde, ist ein Konflikt, der durch seinen Pfad benannt wird, z. B. $.server.port.

Listen von Datensätzen mit einer ID, _id, uuid oder einem Schlüsselfeld, das Datensatz für Datensatz zusammenführt. Schlüsselreihenfolge, Einrückung und Anführungszeichen stehen niemals im Konflikt. Das Ergebnis wird in den Text Ihrer Seite geschrieben, sodass seine Kommentare und Formatierungen erhalten bleiben, und im Arbeitsbereich wird angegeben, wie es zusammengeführt wurde, zum Beispiel „Nach Daten zusammengeführt: 3 Änderungen von uns und 1 Änderung von ihnen; 1 Konflikt bei $.server.port“. Durch Daten zusammenführen wird auf die Zeilenzusammenführung umgeschaltet, und eine Datei, deren Format nicht gültig ist, wird zeilenweise zusammengeführt, mit Angabe des Grundes.

Konfliktmarker

Auflösen einer Datei, die Git bereits markiert hat

Wenn Git, Mercurial oder Subversion eine Datei nicht zusammenführen können, werden beide Versionen zwischen Konfliktmarkierungen hineingeschrieben. Öffnen Sie eine solche Datei in Diff Anything auf beiden Seiten eines Vergleichs und es wird „Diese Datei hat N Zusammenführungskonflikte“ mit „Auflösen“ angezeigt.

Resolve öffnet genau diese Konflikte im Zusammenführungsarbeitsbereich; Jede Zeile außerhalb davon bleibt erhalten, da das Versionskontrollsystem sie zusammengeführt hat. Wenn die Marker eine Basis aufzeichnen (Gits diff3- oder zdiff3-Stil), kann Use base diese auswählen. „Aufgelöste Datei speichern“ schreibt das Ergebnis in derselben Datei mit eigener Kodierung, Byte-Reihenfolgemarkierung und Zeilenenden und fragt zuerst, wann sich die Datei auf der Festplatte geändert hat. Marker, die keine vollständigen Konflikte bilden, werden mit ihrer Linie gemeldet, anstatt erraten zu werden.

Git Zusammenführungstool

git mergetool öffnet die Zusammenführung in einem Fenster

Diff Anything kann das Merge-Tool von Git sein: die Version aus dem Microsoft Store unter Windows direkt und die Version aus dem Mac App Store über das kostenlose Befehlszeilenhilfsprogramm. git mergetool startet es für jede Datei mit Konflikten und wartet: Das Fenster zeigt die Basis-, lokale und Remote-Version und das Ergebnis an, ausgehend von den Konflikten, die Git hinterlassen hat, sodass jede Zeile erhalten bleibt, die Git zusammengeführt hat. „Speichern und schließen“ (⌘S oder Strg+S) schreibt die zusammengeführte Datei und beendet sich mit 0, was Git als aufgelöst ansieht; „Abbrechen“ oder das Schließen des Fensters beendet mit 1 und lässt die Datei so, wie Git sie geschrieben hat. Ein Ergebnis mit ungelösten Konflikten wird erst nach einer Bestätigung gespeichert.

Der Zusammenführungstreiber, der mit merge.diff-anything.driver festgelegt und in .gitattributes zugewiesen wird, führt bei jeder Zusammenführung von Git auf die gleiche Weise ohne Fenster zusammen und schreibt Konfliktmarkierungen nur um die Werte, die beide Seiten unterschiedlich geändert haben. Das Merge-Tool funktioniert auch mit Mercurial, Subversion, Perforce und TFVC und --cli --integration-help druckt die Einstellungen.

Die Version aus dem Mac App Store läuft in Apples App-Sandbox, die ihr nicht erlaubt, die Dateien zu lesen, die ein Versionskontrollsystem nennt; deshalb wird sie nicht selbst als Merge-Tool gestartet. Installieren Sie auf dem Mac das kostenlose Befehlszeilenhilfsprogramm: Dieselben Git-Einstellungen führen dann das Hilfsprogramm aus, das die Dateien liest, die Zusammenführung in einem Fenster der App öffnet, wobei es die App startet, wenn sie nicht läuft, und die zusammengeführte Datei in der Codierung der lokalen Version schreibt, wenn Sie „Speichern und schließen“ wählen. Mehrere Zusammenführungen können gleichzeitig geöffnet sein, jede in einem eigenen Fenster. Ohne das Hilfsprogramm öffnen Sie die Datei mit Konflikten in der App und wählen „Auflösen“.

  • 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

Kostenlos und Pro

Was der kostenlose Plan beinhaltet

Das Anzeigen der Konflikte in einer Datei ist kostenlos, in der App und mit --cli --conflicts in der Befehlszeile. Der Zusammenführungsarbeitsbereich, das Lösen von Konflikten, der Zusammenführungstreiber und das Zusammenführungstool sind Teil von Pro. Beim kostenlosen Plan bietet das Fenster des Zusammenführungstools Pro und wird beendet, ohne die zusammengeführte Datei zu ändern.

Im Workflow

So verwenden Sie es

  1. Öffnen Sie die Konfliktdatei

    Öffnen Sie eine Datei mit Konfliktmarkierungen in der App oder lassen Sie git mergetool Diff Anything starten: unter Windows direkt, auf dem Mac über das Befehlszeilenhilfsprogramm.

  2. Wählen Sie „Auflösen“.

    Die Konflikte werden im Zusammenführungsarbeitsbereich mit jeder zweiten Zeile geöffnet, wenn das Versionskontrollsystem sie zusammenführt.

  3. Entscheiden Sie jeden Konflikt

    Akzeptieren Sie unsere, Akzeptieren Sie ihre, beide in beliebiger Reihenfolge, oder verwenden Sie die Basis, oder bearbeiten Sie das Ergebnis manuell.

  4. Speichern

    Aufgelöste Datei speichern oder im Fenster des Zusammenführungstools speichern und schließen, schreibt die Datei in ihrer eigenen Kodierung und ihren eigenen Zeilenenden.

Nützlich in der Praxis

Wann man es verwenden sollte

Zugehöriges Handbuch

Den passenden Vergleichstyp wählen

Quellen wählen, die automatische Erkennung verstehen und den Vergleichstyp nehmen, der Ihre Frage beantwortet.

Lesen Sie den Leitfaden

Direkte Antworten

Fragen zum Three-Way-Merge- und Git-Merge-Tool.

Führt Diff Anything JSON und YAML anhand ihrer Daten zusammen?

Ja. JSON-, YAML-, TOML- und INI-Dateien werden Wert für Wert zusammengeführt, wobei es nur dann zu Konflikten kommt, wenn beide Seiten denselben Wert unterschiedlich geändert haben. Mit „Nach Daten zusammenführen“ können Sie bei Bedarf zu einer Zeilenzusammenführung wechseln.

Kann ich eine Datei auflösen, die bereits <<<<<<<-Markierungen enthält?

Ja, mit Pro. Öffnen Sie die Datei und wählen Sie „Auflösen“. Seine Konflikte werden im Zusammenführungsarbeitsbereich geöffnet und die aufgelöste Datei wird in ihrer eigenen Kodierung und ihren eigenen Zeilenenden gespeichert.

Kann Diff Anything mein Git-Mergetool auf einem Mac sein?

Ja, mit Pro und dem kostenlosen Befehlszeilenhilfsprogramm. Die Version aus dem Mac App Store kann die Dateien, die Git an ein Merge-Tool übergibt, nicht selbst lesen; das Hilfsprogramm liest sie und öffnet die Zusammenführung in einem Fenster der App. Ohne das Hilfsprogramm lösen Sie Konflikte in Dateien, indem Sie sie in der App öffnen. Unter Windows ist die Version aus dem Microsoft Store das Merge-Tool.

Mit welchen Versionskontrollsystemen funktioniert das Zusammenführungstool?

Git, Mercurial, Subversion, Perforce und TFVC, mit der Version aus dem Microsoft Store unter Windows und mit dem Befehlszeilenhilfsprogramm auf dem Mac. Führen Sie diff-anything --cli --integration-help für die jeweiligen Einstellungen aus.

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 3 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, und das Befehlszeilenhilfsprogramm, das die CLI zur Version aus dem Mac App Store bringt, ist ein kostenloser Download, der den in der App getätigten Pro-Kauf nutzt. 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, alle CLI-Modi und unter Windows vertrauenswürdige Präprozessoren freigeschaltet.

Weiter

Alle Diff Anything-Funktionen anzeigen.

Zurück zu den Funktionen