あなたのケースが私のケースと同じかどうかはわかりませんが、同様の問題がありましたが、.gitconfig にもあったマージ設定が原因でした
私の設定には次のような行が含まれていました
[merge]
tool = BeyondCompare3
[diff]
guitool = BeyondCompare3
[difftool "BeyondCompare3"]
path = C:/Program Files (x86)/Beyond Compare 3/BComp.exe
cmd = \"C:/Program Files (x86)/Beyond Compare 3/BComp.exe\" \"$LOCAL\" \"$REMOTE\"
[mergetool "BeyondCompare3"]
path = C:/Program Files (x86)/Beyond Compare 3/bcomp.exe
cmd = \"C:/Program Files (x86)/Beyond Compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
どうやら、git は前者ではなく後者のオプション (4 つのパラメーター) を使用しているようです。
回避策は、mergetool の名前を
[mergetool "BeyondCompare3"]
に
[mergetool "MergeBeyondCompare3"]
これは、2 つのパラメーターを持つ difftool バージョンを使用することを意味します。
最初のセクションを次のように変更することもできるはずです。
[merge]
tool = MergeBeyondCompare3
しかし、それを行うと、コマンドgit difftool file1.txt file2.txt
は diff ではなく Merge を使用し、元の場所に戻ります。
-t MergeBeyondCompare3
欠点は、実際にマージを使用する場合は、コマンド ライン オプションを使用する必要があることです。