我正在尝试将WinMerge与Git集成在一起,因为我之前已经在Windows 7 Ultimate上看到其他功能。

我已经按照以下步骤操作,但是当我执行默认为vimdiff的git mergetool时,仍然会继续显示错误。

在git的根目录中创建了一个名为winmerge.sh的文件:C / Program Files(x86)/ Git /,其中:WinMergeU是正确的位置。

#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files (x86)/WinMerge/WinMergeU.exe"
git /e /u /dl "Base" /dr "Mine" "$1" "$2"

并使用了以下命令。
git config --global diff.tool winmerge
git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false

错误显示为:
git config option merge.tool set to unknown tool: winmerge

最佳答案

您正在谈论合并工具,但您(和其他有答案的人)正在将其配置为差异工具。

要配置合并工具,您需要使用merge.toolmergetool配置,而不是diff.tooldifftool,如下所示:

git config --global merge.tool winmerge
git config --replace --global mergetool.winmerge.cmd "\"C:\Program Files (x86)\WinMerge\WinMergeU.exe\" -e -u -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
git config --global mergetool.prompt false

然后您可以使用
git mergetool

这将打开您要编辑的两个文件。

@dvdvck的荣誉在注释中提到,您可以在command line parameters中为winmerge(outputpath参数)的结果文件指定第三个文件。

为了完整起见,我将提到this gist旨在完全配置winmerge作为diff和merge工具。

08-27 11:27