Um auf die Antwort von Charles Bailey einzugehen, hier ist mein Git-Setup, das Folgendes verwendet p4merge (freies plattformübergreifendes 3-Wege-Merge-Tool); getestet auf einer msys Git (Windows)-Installation:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
oder, von einer Windows cmd.exe-Shell aus, wird die zweite Zeile zu :
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Die Änderungen (im Vergleich zu Charles Bailey):
- zur globalen Git-Konfiguration hinzugefügt, d.h. gültig für alle Git-Projekte, nicht nur für das aktuelle Projekt
- der Wert für die benutzerdefinierte Werkzeugkonfiguration befindet sich in "mergetool.[tool].cmd", nicht in "merge.[tool].cmd" (ich Dummerchen habe eine Stunde damit verbracht, herauszufinden, warum sich Git ständig über ein nicht vorhandenes Werkzeug beschwert)
- doppelte Anführungszeichen für alle Dateinamen hinzugefügt, so dass Dateien mit Leerzeichen immer noch vom Merge-Tool gefunden werden können (ich habe dies in msys Git über Powershell getestet)
- Beachten Sie, dass Perforce standardmäßig sein Installationsverzeichnis zu PATH hinzufügt, so dass es nicht notwendig ist, den vollständigen Pfad zu p4merge in dem Befehl anzugeben
Herunterladen: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (Feb 2014)
Wie von @Gregory Pakosz neueste msys git jetzt "nativ" unterstützt p4merge (getestet an 1.8.5.2.msysgit.0 ).
Sie können die Liste der unterstützten Tools anzeigen, indem Sie den Befehl ausführen:
git mergetool --tool-help
Sie sollten sehen p4merge entweder in verfügbar o gültig Liste. Falls nicht, aktualisieren Sie bitte Ihr Git.
Si p4merge wurde aufgeführt als verfügbar ist es in Ihrem PATH und Sie müssen nur noch die zusammenführen.werkzeug :
git config --global merge.tool p4merge
Wenn es aufgeführt war als gültig müssen Sie definieren mergetool.p4merge.pfad zusätzlich zu zusammenführen.werkzeug :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Der obige Pfad ist ein Beispiel, wenn p4merge für den aktuellen Benutzer installiert wurde, nicht systemweit (benötigt keine Admin-Rechte oder UAC-Erhöhung)
- Obwohl
~
sollte zum Heimatverzeichnis des aktuellen Benutzers expandieren (theoretisch sollte der Pfad also lauten ~/AppData/Local/Perforce/p4merge.exe
), dies hat bei mir nicht funktioniert
- Noch besser wäre es gewesen, eine Umgebungsvariable zu nutzen (z. B.
$LOCALAPPDATA/Perforce/p4merge.exe
), scheint Git keine Umgebungsvariablen für Pfade zu erweitern (wenn Sie wissen, wie man das zum Laufen bringt, lassen Sie es mich bitte wissen oder aktualisieren Sie diese Antwort)