Git 一次为多个文件配置vsdiffmerge

Git 一次为多个文件配置vsdiffmerge,git,visual-studio-2012,git-diff,Git,Visual Studio 2012,Git Diff,我正在从()为windows使用git 1.9.4 $git difftool branchA branchB 为diff中的所有文件一次打开一个文件 $git difftool——没有提示branchA branchB尝试一次打开所有文件(我希望发生的事情),但是vsdiffmerge无法正确处理以下任何一种情况 将打开vsdiffmerge的多个空实例 已打开的实例的“打开”选项卡将替换为差异列表中的下一个文件 如何配置difftool,使其行为成为vsdiffmerge的一个实例,并具

我正在从()为windows使用git 1.9.4

$git difftool branchA branchB
为diff中的所有文件一次打开一个文件

$git difftool——没有提示branchA branchB
尝试一次打开所有文件(我希望发生的事情),但是vsdiffmerge无法正确处理以下任何一种情况

  • 将打开vsdiffmerge的多个空实例
  • 已打开的实例的“打开”选项卡将替换为差异列表中的下一个文件
如何配置difftool,使其行为成为vsdiffmerge的一个实例,并具有所有差异的多个选项卡

gitconfig:

[diff "astextplain"]
    textconv = astextplain
[rebase]
    autosquash = true

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

答案是,删除结尾处的
/t
(或
/t
,因为转义)

参数
/t
打开一个临时选项卡。这是被替换的选项卡。如果没有此参数,Visual Studio将打开一个永久选项卡,并将其添加到已打开的其他选项卡中

另请参见此处:

PS:尽管最后我删除了
/t
,但对我来说,差异仍然是在一个临时选项卡中打开的。这样做的原因——至少在我的例子中——是Visual Studio或Git忽略了工具
vsdiffmerge
中的所有设置。在我重新命名工具后,一切都按预期工作

因此,我建议将该工具重命名为类似于
vsdiff
,删除
/t
,然后重试


别忘了像调用
git difftool-t vsdiff一样调用它——没有提示branchA branchB
来显式使用名为
vsdiff
的工具,或者将
vsdiff
设置为默认工具。

非常想知道怎么做!我忘记了空的实例。据我所知,每当git试图区分两边都不存在的文件时,Visual Studio就会打开一个空实例,就像添加或删除文件一样。