Visual Studio 上の差分比較とマージにWinMergeを使う

公式にも書かれています。

VisualStudioでは差分比較やマージにvsdiffmergeが使われる。
vsdiffmergeもgitdiffに比べれば個人的に見やすいと思いますが、普段使っているWinMergeに変更することにしました。

グローバル設定で差分とマージツールを変更する

git configを編集します。
Windowsの場合だと、大体以下にあると思います。
“C:\Users\×××.gitconfig”
このファイルをメモ帳か何かで開いて以下の設定を追加します。

↓これだけなぜかエスケープされてしまうので先頭半角スペースにしてますが、貼り付け時にこのコメントと一緒に消してください。
[ diff]
	tool = WinMerge
[difftool]
	prompt = true
[difftool "WinMerge"]
    path = C:/Program Files (x86)/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files (x86)/WinMerge/WinMergeU.exe\" -f \"*.*\" -e -u -r \"$LOCAL\" \"$REMOTE\"
[merge]
	tool = WinMerge
[mergetool]
	prompt = true
[mergetool "WinMerge"]
    path = C:/Program Files (x86)/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files (x86)/WinMerge/WinMergeU.exe\" -e -u \"$LOCAL\" \"$REMOTE\" \"$MERGED\"

WinMergeのパスは環境ごとに違うかもしれないので確認してください。

まだ確認できてないのですが、グローバル設定を入れることでVisual Studioから作られたGitリポジトリのデフォルトの比較・マージツールがWinMergeになるのではないかと思っています。
ただ、過去に作成したリポジトリの場合は、各リポジトリの設定ファイルを書き換える必要があるので、実際に私がやったのは次に説明するリポジトリごとの設定ファイルを書き換えるというやつです。

リポジトリ設定で差分とマージツールを変更する

リポジトリごとに生成される.gitの中に入ります。
例えば以下のような場所にあります。

その中にconfigというファイルがあるので、それをメモ帳か何かで開きます。
※念のためバックアップを取っておいたほうがイイかも。

中身を以下のように変えます。
※下記は上記グローバル設定でいれた内容と同じです。

↓これだけなぜかエスケープされてしまうので先頭半角スペースにしてますが、貼り付け時にこのコメントと一緒に消してください。
[ diff]
	tool = WinMerge
[difftool]
	prompt = true
[difftool "WinMerge"]
    path = C:/Program Files (x86)/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files (x86)/WinMerge/WinMergeU.exe\" -f \"*.*\" -e -u -r \"$LOCAL\" \"$REMOTE\"
[merge]
	tool = WinMerge
[mergetool]
	prompt = true
[mergetool "WinMerge"]
    path = C:/Program Files (x86)/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files (x86)/WinMerge/WinMergeU.exe\" -e -u \"$LOCAL\" \"$REMOTE\" \"$MERGED\"

この設定をしたのち、Visual Studioを再起動して当該プロジェクトを開くとWinMergeで比較・マージできるようになります。

ちなみに、設定の

リポジトリ設定の

差分ツール及びマージツールは以下のように変わっています。

ここでVisual Studioを使用するをクリックしてしまうと、 vsdiffmergeを使う設定に戻ってしまうので気を付けましょう。