<p>Pour compléter la réponse de Charles Bailey, voici ma configuration Git qui utilise <a href="http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools">p4merge</a> (outil de fusion 3 voies multiplateforme gratuit) ; testée sur une installation msys Git (Windows) :</p>
<pre><code class="lang-auto">git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
</code></pre>
<p>ou, depuis un shell cmd.exe Windows, la deuxième ligne devient :</p>
<pre><code class="lang-auto">git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
</code></pre>
<p>Les changements (par rapport à Charles Bailey) :</p>
<ul>
<li>
<p>ajouté à la configuration Git globale, c’est-à-dire valide pour tous les projets Git et pas seulement le projet courant</p>
</li>
<li>
<p>la valeur de configuration de l’outil personnalisé se trouve dans “mergetool.[tool].cmd”, pas “merge.[tool].cmd” (quelle bêtise, j’ai passé une heure à résoudre pourquoi Git se plaignait d’un outil inexistant)</p>
</li>
<li>
<p>ajout de guillemets doubles pour tous les noms de fichiers afin que les fichiers avec des espaces puissent encore être trouvés par l’outil de fusion (j’ai testé cela dans msys Git depuis PowerShell)</p>
</li>
<li>
<p>notez que par défaut Perforce ajoutera son répertoire d’installation au PATH, donc pas besoin de spécifier le chemin complet vers p4merge dans la commande</p>
</li>
</ul>
<p>Téléchargement : <a href="http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools">http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools</a></p>
<p><strong>MODIFICATION</strong> (fév. 2014)</p>
<p>Comme l’a souligné <a href="https://stackoverflow.com/users/216063/gregory-pakosz">@Gregory Pakosz</a>, la dernière version de <a href="http://msysgit.github.io/">msys git</a> supporte maintenant “nativement” <strong>p4merge</strong> (testé sur <em>1.8.5.2.msysgit.0</em>).</p>
<p>Vous pouvez afficher la liste des outils supportés en exécutant :</p>
<pre><code class="lang-auto">git mergetool --tool-help
</code></pre>
<p>Vous devriez voir <em>p4merge</em> dans la liste <em>available</em> ou <em>valid</em>. Sinon, veuillez mettre à jour votre Git.</p>
<p>Si <em>p4merge</em> était listé comme <em>available</em>, il est dans votre <em>PATH</em> et vous n’avez qu’à définir <em>merge.tool</em> :</p>
<pre><code class="lang-auto">git config --global merge.tool p4merge
</code></pre>
<p>S’il était listé comme <em>valid</em>, vous devez définir <em>mergetool.p4merge.path</em> en plus de <em>merge.tool</em> :</p>
<p>`</p>
<p><em>(Réponse tronquée)</em></p>