首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Visual 2013中为Git使用外部diff工具?

如何在Visual 2013中为Git使用外部diff工具?
EN

Stack Overflow用户
提问于 2014-04-12 21:24:46
回答 2查看 3.6K关注 0票数 6

我已经找到了这个职位,它解释了如何让Visual 2013在比较Git中的文件时使用内置的diff工具,但我遇到了相反的问题。现在,当我右键单击Git Commit Details窗口中的文件并选择Compare With Previous... VS在默认的Visual 2013比较工具中执行diff时,我希望它使用外部diff工具,特别是TortoiseMerge.exe。我在我的C:\Users[我的名字].gitconfig中指定了它,它在GitBash控制台上正常工作,但是Visual忽略了这个设置,并且总是使用它的内置工具。

这就是我在那个.gitconfig中所拥有的:

代码语言:javascript
复制
[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[diff]
    guitool = TortoiseMerge
[difftool "TortoiseMerge"]
    path = C:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe

我还检查了我的本地存储库的.gitconfig,以确保它没有覆盖此设置,并且它没有指定任何diff或散乱工具设置。

我还在我的.gitconfig中尝试过类似的设置,例如:

代码语言:javascript
复制
[diff]
    guitool = TortoiseMerge
[difftool "TortoiseMerge"]
    cmd = \"C:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe\" /base:"$REMOTE" /local:"$MINE"

但这种行为并没有改变。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-15 22:31:04

Visual使用diff.tool配置设置,而不是diff.guitool配置设置。

尝试:

代码语言:javascript
复制
[diff]
    tool = TortoiseMerge
票数 6
EN

Stack Overflow用户

发布于 2016-11-03 09:11:18

我最近在Visual 2012中也有过同样的问题。我将在这里发布解决方案,因为这是我在搜索时发现的第一个线程。

我的.gitconfig文件如下所示:

代码语言:javascript
复制
[merge]
    tool = kdiff3
[diff]
    tool = kdiff3
[difftool]
    prompt = true

[difftool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    keepBackup = false
    trustExitCode = true
[mergetool]
    prompt = true

[mergetool "kdiff3"]
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" $BASE $LOCAL $REMOTE -o $MERGED
    keepBackup = false
    trustExitCode = true

[mergetool "vsdiffmerge"]
    cmd = "C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsdiffmerge.exe" /m $REMOTE $LOCAL $BASE $MERGED
    keepbackup = false
    trustexistcode = true

问题是配置部分之间的换行符。

将文件更改为这个文件是正确的:

代码语言:javascript
复制
[merge]
    tool = kdiff3
[diff]
    tool = kdiff3
[difftool]
    prompt = true
[difftool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    keepBackup = false
    trustExitCode = true
[mergetool]
    prompt = true
[mergetool "kdiff3"]
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" $BASE $LOCAL $REMOTE -o $MERGED
    keepBackup = false
    trustExitCode = true
[mergetool "vsdiffmerge"]
    cmd = "C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsdiffmerge.exe" /m $REMOTE $LOCAL $BASE $MERGED
    keepbackup = false
    trustexistcode = true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23036294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档