web-dev-qa-db-de.com

Was ist das beste visuelle Merge-Tool für Git?

Was ist das beste Tool zum Anzeigen und Bearbeiten einer Zusammenführung in Git? Ich möchte eine 3-Wege-Zusammenführungsansicht mit "Mein", "Ihr" und "Vorfahr" in separaten Fenstern und einem vierten "Ausgabe" -Fenster erhalten.

Auch Anweisungen zum Aufrufen des Tools wären großartig. (Ich habe immer noch nicht herausgefunden, wie ich kdiff3 so starten soll, dass ich keinen Fehler bekomme.)

Mein Betriebssystem ist Ubuntu.

554
andy

Meld ist ein Tool zum Vergleichen/Zusammenführen.

So installieren Sie es:

319
user20805

Sie können Ihr eigenes Merge-Tool für die Verwendung mit "git mergetool" konfigurieren.

Beispiel:

  git config --global merge.tool p4merge
  git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
  git config --global mergetool.p4merge.trustExitCode false

Und während Sie gerade dabei sind, können Sie es auch als Ihr Diffe-Tool für "git difftool" einrichten:

  git config --global diff.tool p4merge
  git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'

Beachten Sie, dass Sie unter Unix/Linux nicht möchten, dass der $BASE von Ihrer Shell als Variable analysiert wird - er sollte tatsächlich in Ihrer ~/.gitconfig-Datei erscheinen, damit dies funktioniert.

86
Evgeny

Beyond Compare 3 , mein Favorit, hat eine Merge -Funktionalität in der Pro Edition . Das Gute an der Zusammenführung ist, dass Sie alle 4 Ansichten sehen können: Basis-, Links-, Rechts- und Zusammenführungsergebnis. Es ist etwas weniger visuell als P4V , aber weit mehr als WinDiff. Es lässt sich in viele Versionsverwaltungsprogramme integrieren und funktioniert unter Windows/Linux. Es hat viele Funktionen wie erweiterte Regeln, Editionen, manuelle Ausrichtung ...

Der Perforce Visual Client ( P4V ist ein kostenloses Tool, das bereitgestellt wird Eine der explizitesten Schnittstellen zum Zusammenführen (siehe einige Screenshots ). Funktioniert auf allen gängigen Plattformen. Meine größte Enttäuschung mit diesem Tool ist seine Art von "Nur-Lese" -Schnittstelle . Sie können die Dateien nicht manuell bearbeiten und nicht manuell ausrichten.

PS: P4Merge ist in P4V enthalten. Perforce versucht, es etwas schwieriger zu machen, sein Tool ohne seinen Client zu bekommen.

SourceGear Diff/Merge kann meine zweite freie Werkzeugwahl sein. Überprüfen Sie, dass die Zusammenführung Screenshot und Sie werden sehen, dass es mindestens die 3 Ansichten hat.


Meld ist ein neueres kostenloses Tool, das ich vorziehen würde SourceGear Diff/Merge : Jetzt funktioniert es auch auf den meisten Plattformen (Windows/Linux/Mac) mit dem eindeutigen Vorteil, dass es einige Versionskontrollfunktionen wie Git nativ unterstützt. So können Sie einige Verlaufsunterschiede für alle Dateien viel einfacher haben. Die Zusammenführungsansicht (siehe Screenshot ) hat nur drei Bereiche, genau wie SourceGear Diff/Merge . Dies macht das Zusammenführen in komplexen Fällen etwas schwieriger.

PS: Wenn eines Tages ein Tool 5 Ansichten unterstützt , die zusammengeführt werden , wäre dies wirklich fantastisch, denn wenn Sie in Git Commits auswählen, haben Sie wirklich keine Basis aber zwei. Zwei Basen, zwei Änderungen und eine daraus resultierende Verschmelzung.

62
Wernight

Mein Lieblingswerkzeug zum visuellen Zusammenführen ist SourceGear DiffMerge

  • Es ist frei.
  • Plattformübergreifend (Windows, OS X und Linux).
  • Saubere visuelle Benutzeroberfläche
  • Alle erwarteten Diff-Funktionen (Diff, Merge, Folder Diff).
  • Befehlszeilenschnittstelle.
  • Verwendbare Tastaturkürzel.

User interface

42
Luke

Ich höre gute Dinge über kdiff3.

38
Mike F

vimdiff

Sobald Sie vim gelernt haben (und IMHO sollten Sie), ist vimdiff nur ein weiteres schönes kleines orthogonales Konzept, das Sie lernen müssen. So rufen Sie die Online-Hilfe in vim auf:

:help vimdiff 

Diese Frage behandelt die Verwendung: Wie verwende ich vimdiff, um einen Konflikt zu lösen?

enter image description here

Wenn Sie im dunklen Zeitalter der Mausnutzung stecken bleiben und die Dateien, die Sie zusammenführen, nicht sehr groß sind, empfehle ich, sie zu verschicken.

27
Andrew Wagner

Sie können versuchen P4Merge .

Visualisieren Sie die Unterschiede zwischen Dateiversionen mit P4Merge. Lösen Sie Konflikte, die sich aus der parallelen oder gleichzeitigen Entwicklung ergeben, mithilfe der Farbcodierung.

Die Funktionen umfassen:

  • Markieren und bearbeiten Sie Unterschiede in Textdateien
  • Wählen Sie, ob Zeilenenden oder Leerzeichen eingeschlossen oder ignoriert werden sollen
  • Erkennen von Zeilenende-Konventionen für Windows (CRLF), Mac (CR) und Unix (LF)
  • Verwenden Sie Befehlszeilenparameter und starten Sie das Programm aus Nicht-Perforce-Anwendungen
  • Zeilennummern beim Vergleichen und Zusammenführen von Dateien anzeigen
  • Schließen Sie Dateien aus, die geändert, eindeutig oder unverändert sind
  • Filtern Sie Dateien nach Name oder Erweiterung
  • Organisieren Sie geänderte Assets in der bekannten Datei-/Ordnerhierarchie
  • Vergleichen Sie JPEG, GIF, TIFF, BMP und andere Dateiformate
  • Mit der Qt-API erweitern
  • Bilder überlagern oder nebeneinander anzeigen
  • Unterschiede auf überlagerten Bildern hervorheben
22
Ron

IntelliJ IDEA verfügt über ein ausgeklügeltes Tool zur Konfliktlösung zusammenführen mit dem Zauberstab Auflösen, das das Zusammenführen erheblich vereinfacht:

Source: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/

16
niutech

Diffuse ist mein Favorit, aber natürlich bin ich voreingenommen. :-) Es ist sehr einfach zu bedienen:

$ diffuse "mine" "output" "theirs"

Diffuse ist ein kleines und einfaches Tool zum Zusammenführen von Text, das in Python geschrieben wurde. Mit Diffuse können Sie Änderungen an Ihrem Code einfach zusammenführen, bearbeiten und überprüfen. Diffuse ist freie Software.

15
Derrick Moser

Araxis Merge http://www.araxis.com/merge Ich verwende es unter Mac OS X, aber ich verwende es unter Windows ... es ist nicht kostenlos ... aber es hat einige Nette Funktionen ... aber auf Windows schöner.

12
Clintm

Sie können das von Git Mergetool verwendete Tool ändern, indem Sie git mergetool -t=<tool> oder --tool=<tool> übergeben. Um die Standardeinstellung (von vimdiff) zu ändern, verwenden Sie git config merge.tool <tool>.

7
user35149

Wenn Sie nur auf der Suche nach einem unvergleichlichen Diff-Tool sind, dann ist das ganz nett: http://www.scootersoftware.com/moreinfo.php

7
Nathan Feger

Für die Git-Zusammenführung können Sie also Folgendes versuchen:

  • DiffMerge zum visuellen Vergleichen und Zusammenführen von Dateien unter Windows, OS X und Linux.

    DiffMerge

  • Meld , ist ein visuelles Tool zum Vergleichen und Zusammenführen.

    Meld is a visual diff and merge tool

  • KDiff , ein Programm zum Vergleichen und Zusammenführen), das 2 oder 3 Texteingabedateien/Verzeichnisse vergleicht oder zusammenführt.
  • opendiff (Teil von Xcode Tools unter macOS), ein Befehlszeilendienstprogramm, das die FileMerge-Anwendung vom Terminal aus startet, um Dateien oder Verzeichnisse grafisch zu vergleichen, einschließlich Zusammenführen .
2
kenorb

Ich habe viele der hier genannten Tools ausprobiert und keines war genau das, wonach ich gesucht habe.

Persönlich habe ich festgestellt, dass Atom ein großartiges Werkzeug zur Visualisierung von Unterschieden und zur Konfliktlösung/-zusammenführung ist.

Beim Zusammenführen gibt es nicht drei Ansichten, aber für jede Version wird eine farbige Hervorhebung angezeigt. Sie können den Code direkt bearbeiten oder es gibt Schaltflächen, mit denen Sie die gewünschte Version des Snippets verwenden können.

Ich benutze es nicht einmal mehr als Editor oder IDE, nur um mit Git zu arbeiten. Saubere Benutzeroberfläche und sehr einfach, und es ist sehr anpassbar.

  • Sie können es über die Befehlszeile starten und eine einzelne Datei übergeben, in die Sie öffnen möchten, oder Ihren Projektordner (Git Repo) hinzufügen.

    • Ich würde auch empfehlen Projektmanager als eine sehr bequeme Möglichkeit, zwischen Projekten zu navigieren, ohne Ihre Baumansicht auszufüllen.
  • Das einzige Problem, das ich hatte, ist das Aktualisieren. Wenn Sie mit großen Repositorys atom arbeiten, kann es langsam sein, Änderungen zu aktualisieren, die Sie außerhalb des Repositorys vornehmen. Ich schließe es einfach immer, wenn ich fertig bin, und öffne es dann erneut, wenn ich meine Änderungen/das Commit erneut anzeigen möchte. Sie können das Fenster auch mit Strg + Umschalt + F5 neu laden, was nur eine Sekunde dauert.

Und es ist natürlich kostenlos.

2
Sean McCallum

Sie können ECMerge Diff/Merge Tool auf Ihrem Linux, Mac oder Windows installieren. Es ist in Git vorkonfiguriert, so dass nur die Verwendung von git mergetool den Job erledigt.

1
Armel

Ich benutze verschiedene Tools zum Zusammenführen und Vergleichen:

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

Faust könnte aufgerufen werden von:

git difftool [BRANCH] -- [FILE or DIR]

Die zweite wird aufgerufen, wenn Sie git mergetool verwenden.

1
ephemerr

Wenn Sie Visual Studio verwenden, ist das in Team Explorer integrierte Tool ein sehr nützliches Tool zum Lösen von Git-Merge-Konflikten.

0
Charith