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

Was ist das beste Werkzeug zum Anzeigen und Bearbeiten einer Zusammenführung in Git? Ich möchte eine 3-Wege-Merge-Ansicht mit “meinen”, “ihren” und “Vorfahren” in separaten Panels und einem vierten “Ausgabe” -Panel erhalten.

Auch statementen zum Aufrufen des Tools wären großartig. (Ich habe immer noch nicht herausgefunden, wie man kdiff3 so startet, dass es mir keinen Fehler gibt.)

Mein Betriebssystem ist Ubuntu.

Meld ist ein Diff / Merge-Tool.

So installieren Sie es auf:

  • Ubuntu
  • Mac
  • Windows : “Die empfohlene Version von Meld für Windows ist die neueste Version, verfügbar als MSI von http://meldmerge.org

Sie können ein eigenes Merge-Tool für die Verwendung mit ” git mergetoolgit mergetool .

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 wenn du schon dabei bist, kannst du es auch als ” git difftool ” für ” git difftoolgit difftool :

  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 $BASE als Variable von Ihrer Shell analysiert wird – sie sollte eigentlich in Ihrer ~ / .gitconfig-Datei erscheinen, damit dies funktioniert.

Beyond Compare 3 , mein Favorit, hat eine Merge- functionalität in der Pro-Edition . Die gute Sache mit seiner Zusammenführung ist, dass Sie alle 4 Ansichten sehen können: Basis, links, rechts und zusammengeführtes Ergebnis. Es ist etwas weniger visuell als P4V, aber viel mehr als WinDiff. Es integriert sich in viele Quellcodeverwaltung und funktioniert unter Windows / Linux. Es hat viele functionen wie erweiterte Regeln, Editionen, manuelle Ausrichtung …

Der Perforce Visual Client ( P4V ) ist ein kostenloses Tool, das eine der explizitsten Schnittstellen zum Zusammenführen bietet (siehe einige Screenshots ). functioniert auf allen wichtigen Plattformen. Meine größte Enttäuschung über dieses Tool ist seine Art von “schreibgeschütztem” Interface . Sie können die Dateien nicht manuell bearbeiten und Sie können sie nicht manuell ausrichten.

PS: P4Merge ist in P4V enthalten. Perforce versucht es ein wenig schwer zu machen, ihr Werkzeug ohne ihren Client zu bekommen.

SourceGear Diff / Merge kann meine zweite freie Werkzeugwahl sein. Überprüfen Sie, ob die Screenshots zusammengeführt wurden und Sie sehen, dass es mindestens 3 Ansichten hat.


Meld ist ein neueres kostenloses Tool, das ich SourceGear Diff / Merge vorziehen würde: Jetzt funktioniert es auch auf den meisten Plattformen (Windows / Linux / Mac) mit dem eindeutigen Vorteil, Quellcode wie Git nativ zu unterstützen. So können Sie einige Geschichte diff auf allen Dateien viel einfacher haben. Die Zusammenführungsansicht (siehe Screenshot ) hat nur drei Bereiche , genau wie SourceGear Diff / Merge . Dies erschwert das Zusammenführen in komplexen Fällen.

PS: Wenn ein Tool eines Tages 5 Ansichten zusammenführen würde , wäre das wirklich genial, denn wenn Sie in Git Gittern wählen, haben Sie wirklich nicht eine Basis, sondern zwei. Zwei Basis-, zwei Änderungen und eine resultierende Zusammenführung.

Mein bevorzugtes visuelles Merge-Tool ist SourceGear DiffMerge

  • Es ist frei.
  • Plattformübergreifend (Windows, OS X und Linux).
  • Saubere visuelle Benutzeroberfläche
  • Alle Diff-Features, die Sie erwarten würden (Diff, Merge, Folder Diff).
  • Befehlszeilenschnittstelle
  • Verwendbare Tastaturkürzel

Benutzeroberfläche

Ich höre gute Dinge über kdiff3.

Sie können P4Merge ausprobieren.

Visualisieren Sie die Unterschiede zwischen Dateiversionen mit P4Merge. Lösen Sie Konflikte, die sich aus paralleler oder gleichzeitiger Entwicklung durch Farbcodierung ergeben.

Die functionen umfassen:

  • Markieren und bearbeiten Sie Textdateiunterschiede
  • Wählen Sie, ob Zeilenenden oder Leerstellen eingeschlossen oder ignoriert werden sollen
  • Zeilenkonventionen für Windows (CRLF), Mac (CR) und Unix (LF) erkennen
  • Verwenden Sie Befehlszeilenparameter und starten Sie von Nicht-Perforce-Anwendungen
  • Zeigen Sie beim Vergleichen und Zusammenführen von Dateien Zeilennummern an
  • Dateien ausschließen, die geändert, eindeutig oder unverändert sind
  • Dateien nach Name oder Erweiterung filtern
  • Organisieren Sie geänderte Assets in einer vertrauten Datei- / Ordnerhierarchie
  • Vergleichen Sie JPEG, GIF, TIFF, BMP und andere Dateiformate
  • Erweitern Sie mit der Qt-API
  • Overlay Bilder oder Anzeige nebeneinander
  • Heben Sie Unterschiede bei überlagerten Bildern hervor

vimdiff

Sobald Sie Vim gelernt haben (und IMHO sollten Sie), ist Vimdiff nur noch ein schönes kleines orthogonales Konzept zu lernen. So erhalten Sie Online-Hilfe in vim:

 :help vimdiff 

Wenn Sie im dunklen Zeitalter der Mausbenutzung stecken bleiben und die Dateien, die Sie zusammenführen, nicht sehr groß sind, empfehle ich eine Verschmelzung.

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 Text Merge Tool, das in Python geschrieben wurde. Mit Diffuse können Sie Änderungen an Ihrem Code problemlos zusammenführen, bearbeiten und überprüfen. Diffuse ist freie Software.

Araxis Merge http://www.araxis.com/ Ich benutze es unter Mac OS X, aber ich habe es unter Windows verwendet … es ist nicht kostenlos … aber es hat einige nette Features … schöner unter Windows obwohl.

Wenn Sie nur nach einem Diff-Tool suchen, das unvergleichlich ist, ist es ziemlich nett: http://www.scootersoftware.com/moreinfo.php

Sie können das von git mergetool verwendete Werkzeug ändern, indem Sie git mergetool -t= oder --tool= . Um den Standardwert (von vimdiff) zu ändern, verwenden Sie git config merge.tool .

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

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

Sie können das ECMerge Diff / Merge Tool auf Ihrem Linux, Mac oder Windows installieren. Es ist in Git vorkonfiguriert, so dass nur git mergetool wird.

Ich habe viele der hier genannten Tools ausprobiert und keines von ihnen ist so ziemlich das, wonach ich gesucht habe.

Ich persönlich habe herausgefunden, dass Atom ein großartiges Tool zur Visualisierung von Unterschieden und Konfliktlösung / Zusammenführung ist.

Für das Zusammenführen gibt es nicht drei Ansichten, sondern alles wird mit einer farblichen Hervorhebung für jede Version kombiniert. Sie können den Code direkt bearbeiten oder Schaltflächen zur Verwendung der jeweils gewünschten Version des Snippets verwenden.

Ich benutze es nicht einmal mehr als Editor oder IDE, nur um mit Git zu arbeiten. Säubern Sie UI und sehr geradlinig, plus es ist in hohem Grade kundengerecht.

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

    • Ich würde auch empfehlen, Projekt-Manager als eine sehr bequeme Möglichkeit, zwischen den Projekten zu navigieren, ohne Ihre Baumansicht zu füllen.
  • Das einzige Problem, das ich hatte, ist erfrischend – wenn Sie mit großen Repositories arbeiten, kann atom langsam sein, um Änderungen, die Sie außerhalb davon machen, zu aktualisieren. Ich schließe es immer, wenn ich fertig bin, und öffne es dann wieder, wenn ich meine Änderungen / Commits noch einmal sehen möchte. Sie können das Fenster auch mit ctrl + shift + f5 neu laden, was nur eine Sekunde dauert.

Und es ist natürlich frei.

Ich verwende verschiedene Tools zum Zusammenführen und Vergleichen:

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

Faust könnte aufgerufen werden durch:

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

Second wird aufgerufen, wenn Sie git mergetool .

Wenn Sie Visual Studio verwenden , ist das in Team Explorer integrierte Tool ein sehr nützliches Tool, um Konflikte mit der Zusammenführung von Git zu lösen.

Also für die Git-Merge, können Sie versuchen:

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

    DiffMerge

  • Meld , ist ein visuelles Diff- und Merge-Tool.

    Meld ist ein visuelles Diff- und Merge-Tool

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

gitx http://gitx.frim.nl/

Einige Bugs bei der Arbeit mit großen Commit-Sets, aber großartig zum Durchsuchen von Änderungen und zum Auswählen verschiedener Änderungen an der Bühne und dann Commit.