为什么我不能在Windows上使用TortoiseMerge作为我的git合并工具?

Ben*_*ank 45 windows git user-interface mergetool tortoisemerge

我正试图执行我的第一次Git合并(令人兴奋!),但无法在Windows 7上识别Git Gui(0.13GITGUI,来自Git 1.7.4.msysgit.0)以识别TortoiseMerge(1.6.11.20210 x64).基于对类似问题的回答,我进行了以下配置更改:

$ git config --global merge.tool tortoisemerge
$ git config --global mergetool.tortoisemerge.cmd 'TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"'
$ git config --global --list
...snip...
merge.tool=tortoisemerge
mergetool.tortoisemerge.cmd=TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"
$
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我启动Git Gui并尝试"运行合并工具"时,我收到错误Unsupported merge tool 'tortoisemerge'.

谁能告诉我我做错了什么?这是我的相关部分~/.gitconfig:

[merge]
        tool = tortoisemerge
[mergetool "tortoisemerge"]
        cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
Run Code Online (Sandbox Code Playgroud)

更新

git mergetool从命令行运行时,TortoiseMerge可以正常使用上面的配置.似乎只有Git Gui有问题.: - /

Chr*_*gon 57

如果您有最新的git,请运行以下命令行:

git config merge.tool tortoisemerge

要点:请勿.exe在命令中添加扩展名.

如果失败,或者如果要添加git不知道的其他合并工具,请执行以下操作:

在编辑器中打开以下其中一项:

  • 64位git: C:\Program Files\Git\mingw64\share\git-gui\lib\mergetool.tcl
  • 32位git: C:\Program Files (x86)\Git\share\git-gui\lib\mergetool.tcl

将这样的内容添加到mergetool.tcl:

tortoisemerge {
    set cmdline [list TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"]
}
Run Code Online (Sandbox Code Playgroud)

将新的tortoisemerge条目放在其他代码之上:

default {
        error_popup [mc "Unsupported merge tool '%s'" $tool]
        return
}
Run Code Online (Sandbox Code Playgroud)

奖金示例:

要使用SourceGear diffmerge,请将其添加到mergetool.tcl:

diffmerge {
    set cmdline [list "C:/Program Files (x86)/SourceGear/DiffMerge/DiffMerge.exe" --merge --result=$MERGED $LOCAL $BASE $REMOTE]
}
Run Code Online (Sandbox Code Playgroud)

  • 好吧,我会被愚弄.两年过去了,我们终于得到了这个解决方案! (7认同)

Jak*_*ake 17

试试这个:

[merge]
tool = tortoise

[mergetool "tortoise"]
cmd = "TortoiseMerge.exe" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"
Run Code Online (Sandbox Code Playgroud)

资料来源:http://programmersunlimited.wordpress.com/2010/07/01/getting-git-to-use-tortoisemerge/

  • 不得不把完整的路径和转义双引号:`cmd = \""c:/ Program Files/TortoiseSVN/bin/TortoiseMerge.exe"\" - base:"$ BASE" - 他们:"$ REMOTE"-mine: "$ LOCAL"-merged:"$ MERGED"` (8认同)

jnr*_*orp 5

对于我正在处理的情况,mergetool已经设置为tortoisemerge,但是找不到。

提供在Windows中可以使用的完全合格的位置:

git config --global mergetool.tortoisemerge.cmd "\"C:\\Program Files\\TortoiseGit\\bin\\TortoiseGitMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\""
Run Code Online (Sandbox Code Playgroud)