我花了一些时间将git (git版本2.35.3.windows.1)配置为使用WinMerge (2.16.20)作为外部扩散工具。这个帖子是我的切入点,这个要旨似乎帮助了一些人。我这边还是没有运气。
$ git config --global --list
...
diff.tool=winmerge
difftool.winmerge.prompt=false
difftool.winmerge.trustexitcode=true
difftool.winmerge.cmd=.... (different versions see below)
--------------------------------------------------------------------------------
Example
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE
cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" -u -e \"$LOCAL\" \"$REMOTE\"问题1:在帖子中,作者提到了git的2.5版本。但官方公布的2.36份回购名单是最新发布的。从2015年起,windows似乎发布了2.5版。这是实验性的吗?还是不正式?
问题2:能解释一下git difftool在做什么吗?有没有一种方法可以模拟git之外的调用,这样我就可以更好地调试它?也许有人也有这个问题,他可以解释他是如何调试这个问题的。
我没有错误信息(似乎被吞咽了.)
发布于 2022-04-29 02:25:24
在gitconfig中为Windows路径编写正确的空格、斜杠和反斜杠是一场噩梦。为了避免这种情况,将c:\Program Files (x86)\WinMerge添加到系统变量Path (google windows how to edit system variables)中,这样我们就可以直接在命令行的路径下调用可执行文件(在您的情况下是WinMergeU.exe),而不是它的绝对路径。
更新Path后,重新打开git以重新加载它。运行git config --global -e编辑difftool.winmerge.cmd
[difftool "winmerge"]
cmd = WinMergeU.exe -u -e "$LOCAL" "$REMOTE"要测试它是否有效,输入一个git存储库并运行git difftool HEAD^ HEAD。您可以尝试其他git diff命令,将git diff替换为git difftool。
https://stackoverflow.com/questions/72050695
复制相似问题