我正在尝试执行我的第一次 Git merge (令人兴奋!),但无法让 Git Gui(来自 Git 1.7.4.msysgit.0 的 0.13.GITGUI)识别 TortoiseMerge(1.6.11.20210 x64) Windows 7。基于 an answer to a similar question ,我进行了以下配置更改:
$ 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"
$
不幸的是,当我启动 Git Gui 并尝试“运行 merge 工具”时,我收到错误消息 Unsupported merge tool 'tortoisemerge'
。
谁能告诉我我做错了什么?这是我的 ~/.gitconfig
的相关部分:
[merge]
tool = tortoisemerge
[mergetool "tortoisemerge"]
cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
更新
当从命令行运行 git mergetool
时,TortoiseMerge 可以很好地处理上述配置。似乎只有 Git Gui 有问题。 :-/
最佳答案
如果您有最新的 git,请运行此命令行一次:
git config merge.tool tortoisemerge
重要提示:不要向命令添加 .exe
扩展名。
如果失败,或者如果你想添加一个 git 不知道的不同 merge 工具,请执行以下操作:
在编辑器中打开以下其中一项:
- 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"]
}
将新的 tortoisemerge 条目放在其他代码之上:
default {
error_popup [mc "Unsupported merge tool '%s'" $tool]
return
}
奖励示例:
要使用 SourceGear diffmerge,请将其添加到 mergetool.tcl:
diffmerge {
set cmdline [list "C:/Program Files (x86)/SourceGear/DiffMerge/DiffMerge.exe" --merge --result=$MERGED $LOCAL $BASE $REMOTE]
}
关于windows - 为什么我不能在 Windows 上使用 TortoiseMerge 作为我的 git merge 工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5190188/