【Git】difftool を複数設定する方法

スポンサードリンク

経緯

WinMerge はフォルダを指定して一度に再帰的に比較ができ、便利ですの♪

けれども、再帰的な比較はできないながら、インデントのみの変更は差分としない Visual Studio Code の diff をしばらくメインに使用したいですの。

git difftool でどちらも使用できましたら嬉しいですわ!

今回、これを実現できましたので、ノートいたします!

なお、環境は次となります。

  • Visual Studio Code: 1.9.1
  • WinMerge: 2.14.0.121+jp-121

今までの difftool 設定

以前投稿した通りの状態となっております。

設定方法

コマンドでの設定方法

  • diff.tool の設定値について、git config に –add オプションをつけることにより、既存の設定を上書きすることなく追加することが可能だが、今回は上書きで問題ない。
    difftool 設定に今までの winmerge の値が残っているため、git difftool -t winmerge とすることによって切り替えることが可能。
  • 文字列を囲むときは、シングルクォーテーション ‘ を使用する。
# git difftool 設定
# vscode をデフォルトの difftool に設定
git config --global diff.tool vscode
# vscode の起動コマンドを設定
git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'

# 設定の確認
git config --get-regexp diff

設定ファイル .gitconfig での設定方法


    tool = vscode
[difftool "winmerge"]
    path = C:/Program Files/WinMerge/winmergeu.exe
    cmd = "'C:/Program Files/WinMerge/winmergeu.exe' -r -u $LOCAL $REMOTE'
[difftool "vscode"]
    cmd = code --wait --diff $LOCAL $REMOTE

使い方

# Visual Studio Code で差分を確認
git difftool
# WinMerge ですべてのファイルの差分を一度に確認
git difftool -d -t winmerge

おわりに

次の公式ページが参考になりました!ありがとう存じます!

以上です。


スポンサードリンク

コメントを残す