git - 如何告诉 Visual Studio 将 WinMerge 与 Git 结合使用?

标签 git visual-studio winmerge

我在 VS2017 Enterprise 中使用 Git,如果我在 Changes 中右键单击一个文件并选择“与未修改的比较”,它将使用 VS diff 工具在 VS 的新窗口中打开。

我想改用 WinMerge,并一直在查看诸如 this 之类的资源。 (BeyondCompare的说明,但原理应该是一样的),this (GitExtensions 同上)和 this ,但无法让它工作。无论我做什么,我仍然可以在 VS 中获得 VS diff 工具。

我的用户文件夹中的 .gitconfig 文件看起来像这样......

[user]
  name = Me
  email = myemail@somewhere.jim
[core]
  autocrlf = true
[diff]
  tool = winmerge
[difftool "winmerge"]
  cmd = "'C:/Program Files (x86)/WinMerge/WinMergeU.exe'" -e "$LOCAL" "$REMOTE"

...我的项目文件夹中的 .git/config 文件看起来像这样(敏感信息已更改)...
[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[user]
[diff]
    tool = winmerge
[difftool]
    prompt = true
[difftool "winmerge"]
    cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE
    keepBackup = false
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = true
[remote "origin"]
    url = https://me@dev.azure.com/me/Project/_git/Project
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1346x938+75+75 445 196

任何人都可以告诉我使用 WinMerge 需要做什么?
  • Windows 7 专业版 64 位
  • Visual Studio 2017 企业版 4.7.03062
  • WinMerge 2.14.0.0
  • Git 2.21.0
  • 最佳答案

    你的问题是...

    /c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe
    

    ...是错误的路径。如果你查看你的第一个代码片段,你会看到正确的路径,但是这被项目的配置文件覆盖。

    如果您更改第二个片段中的路径,或者(更好)删除整个部分,因为它只复制第一个片段中的内容,那么您应该会发现它会起作用。

    关于git - 如何告诉 Visual Studio 将 WinMerge 与 Git 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56064594/

    相关文章:

    git - unity3d和git子模块可以吗?

    python - Django + twitter bootstrap + github 最优雅的方法是什么?

    Git检查离开文件夹锁定的ubuntu

    c++ - DirectX 项目模板在 Visual Studio 2017 中不可见

    c# - 为什么 `switch` 代码的圈复杂度比 'if-else' 高

    git - 压缩推送的提交组

    c++ - 更安全的条件编译?

    git - 如何让 WinMerge 成为我的 git mergetool?

    windows - 是否可以使用 winmerge 从 cygwin 查看 git 差异?

    windows - 在 Windows 中对两个文件执行差异时获取两个文件差异的行号