Um die Antwort von Charles Bailey weiterzuverfolgen , hier ist mein Git-Setup, das p4merge (kostenloses plattformübergreifendes 3-Wege -Merge-Tool) verwendet. getestet auf der Installation von msys Git (Windows):
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
oder aus einer Windows-cmd.exe-Shell wird die zweite Zeile:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Die Änderungen (relativ zu Charles Bailey):
- zur globalen Git-Konfiguration hinzugefügt, dh gültig für alle Git-Projekte, nicht nur für das aktuelle
- Der Konfigurationswert für das benutzerdefinierte Tool befindet sich in "mergetool. [tool] .cmd", nicht in "merge. [tool] .cmd".
- Es wurden doppelte Anführungszeichen für alle Dateinamen hinzugefügt, damit Dateien mit Leerzeichen weiterhin vom Zusammenführungstool gefunden werden können (ich habe dies in msys Git von Powershell getestet).
- Beachten Sie, dass Perforce standardmäßig sein Installationsverzeichnis zu PATH hinzufügt, sodass im Befehl kein vollständiger Pfad zu p4merge angegeben werden muss
Download: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
BEARBEITEN (Februar 2014)
Wie von @Gregory Pakosz hervorgehoben , unterstützt das neueste msys git jetzt "nativ" p4merge (getestet unter 1.8.5.2.msysgit.0 ).
Sie können eine Liste der unterstützten Tools anzeigen, indem Sie Folgendes ausführen:
git mergetool --tool-help
Sie sollten p4merge entweder in der verfügbaren oder in der gültigen Liste sehen. Wenn nicht, aktualisieren Sie bitte Ihren Git.
Wenn p4merge als verfügbar aufgeführt wurde , befindet es sich in Ihrem PFAD und Sie müssen nur merge.tool festlegen :
git config --global merge.tool p4merge
Wenn es wie aufgeführt war gültig , müssen Sie definieren mergetool.p4merge.path zusätzlich zu merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Das Obige ist ein Beispielpfad, als p4merge für den aktuellen Benutzer installiert wurde, nicht systemweit (benötigt keine Administratorrechte oder UAC-Erhöhung)
- Obwohl
~
es in das Home-Verzeichnis des aktuellen Benutzers erweitert werden sollte (theoretisch sollte der Pfad so sein ~/AppData/Local/Perforce/p4merge.exe
), funktionierte dies bei mir nicht
- Noch besser wäre es gewesen, eine Umgebungsvariable zu nutzen (z. B.
$LOCALAPPDATA/Perforce/p4merge.exe
). Git scheint Umgebungsvariablen für Pfade nicht zu erweitern (wenn Sie wissen, wie dies funktioniert, lassen Sie es mich bitte wissen oder aktualisieren Sie diese Antwort).