8

我在 git 全局配置中为 difftool 和 mergetool 配置了 DiffMerge。我读到 Visual Studio 尊重全局 git 配置的这种设置。这是我的 git 配置:

git config  --global --list
difftool.DiffMerge.cmd='C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' $LOCAL $REMOTE
merge.tool=DiffMerge
mergetool.DiffMerge.cmd='C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result=$PWD/$MERGED $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE
mergetool.DiffMerge.trustexitcode=true
user.name=masiboo
user.email=masiboo@gmail.com

但是如果尝试从 Visual Studio 中查看差异,它会打开 vs 自己的差异工具。如何打开或配置打开外部工具?

4

2 回答 2

8

也花了我一段时间。

似乎visual studio 2017“帮助”了你,如果出现问题,它只会启动visual studio diff。

这是我的工作 .gitconfig 设置:

[diff]
    tool = winmerge

[difftool "winmerge"]  
  trustExitCode = true
  cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" -u -e \"$LOCAL\" \"$REMOTE\"

请注意,Visual Studio 似乎使用 diff tools settings 插入了存储库级别的配置,在这种情况下,您需要清除存储库中的 .git/config 设置。

于 2017-11-29T12:10:42.810 回答
1

要将 VS 代码用作差异工具,我将其添加到我的本地 git 配置文件中,适用于 VS2019。

[diff]
    tool = vscode
[difftool "vscode"]
    cmd = "code --wait --diff \"$LOCAL\" \"$REMOTE\" "
于 2019-04-22T05:41:40.480 回答