使用Visual Studio 2012的内置合并工具和Git

时间:2012-10-01 08:54:40

标签: git merge diff visual-studio-2012 git-extensions

所以,我不知道是否有人注意到,但是与VS2012一起打包的新合并工具是最大的恶心。我最近移动到Git来获取源代码控制,并且真的希望能够将VS2012设置为我的默认difftool / mergetool。

有关如何执行此操作的任何建议吗?我宁愿在活动的VS2012窗口中启动diff / merge,如果可能的话,不是新的实例。

4 个答案:

答案 0 :(得分:78)

This article解释了如何执行此操作。我尝试了这个,它的工作原理。在我的用法中,差异是在任何现有的Visual Studio实例中打开的,这是您的首选。

[diff]
    tool = vsdiffmerge
[difftool]
      prompt = false
[difftool "vsdiffmerge"]
      cmd = '"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" //t
      keepbackup = false
      trustexitcode = true
[merge]
      tool = vsdiffmerge
[mergetool]
      prompt = false
[mergetool "vsdiffmerge"]
      cmd = '"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/vsdiffmerge.exe"' "$REMOTE" "$LOCAL" "$BASE" "$MERGED" //m
      keepbackup = false
      trustexitcode = true

或者使用%VSINSTALLDIR%始终引用与您打开的命令行匹配的Visual Studio版本(这仅适用于已设置Visual Studio环境,使用Visual Studio命令提示符快捷方式或手动调用vsvars32.bat):

[diff]
    tool = vsdiffmerge
[difftool]
      prompt = false
[difftool "vsdiffmerge"]
      cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" //t
      keepbackup = false
      trustexitcode = true
[merge]
      tool = vsdiffmerge
[mergetool]
      prompt = false
[mergetool "vsdiffmerge"]
      cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" "$BASE" "$MERGED" //m
      keepbackup = false
      trustexitcode = true

答案 1 :(得分:13)

如果您在Visual Studio中使用Git Source Control Provider,则看起来this feature已实施,自1.0.0版起可用。

或者,如果您开始使用Microsoft's tools for git,那么它也会使用内置差异工具。从screenshots中的一些来看,它看起来像是双向合并,结果在底部。

答案 2 :(得分:1)

标记为已回答的解决方案对我不起作用,但这样做了(我的路径中有vsdiffmerge.exe位置 - 不知道它是否有任何内容):

[diff]
    tool = vsdiffmerge
    guitool = vsdiffmerge
[difftool]
    prompt = true
[difftool "vsdiffmerge"]
    cmd = $LOCAL $REMOTE /t
    keepbackup = false
    trustexistcode = true
    path = C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsDiffMerge.exe
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = false
[mergetool "vsdiffmerge"]
    cmd = $REMOTE $LOCAL $BASE $MERGED /m
    keepbackup = false
    trustexitcode = true
    path = C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsDiffMerge.exe

答案 3 :(得分:0)

在Visual Studio 2019中,只需转到“工具”->“源代码控制”->“ Git全局设置”->“工具”部分,然后对Diff工具和/或“合并工具”使用“使用Visual Studio”即可轻松实现