为WinDiff

时间:2017-06-20 08:52:06

标签: git

出于演示目的,我试图为Git配置diff工具到WinDiff。

但是,最后一个命令失败并提供了git config帮助:

C:\...> git config --global diff.tool windiff

C:\...> git config --global difftool.windiff.path "C:\Program Files (x86)\WinDiff\"

C:\...> git config --global difftool.windiff.cmd "C:\Program Files (x86)\WinDiff\WinDiff.exe"

C:\...> git config --global difftool.windiff.cmd "C:\Program Files (x86)\WinDiff\WinDiff.exe" 
"$LOCAL" "$REMOTE"
usage: git config [<options>]

Config file location
    --global              use global config file
    --system              use system config file
    --local               use repository config file
[...]

(WinDiff.exe和“$ LOCAL”之间的换行符只是为了便于阅读)

我的问题

我无法弄清楚自己做错了什么。如何将WinDiff设置为diff工具?

这更像是一个学术问题。我实际上并不想使用WinDiff,但我正在准备Git的培训,我想了解为什么会发生这种情况以及如何解决它,因为我可能会成为关于Git问题的主要联系人。

D:\...> git version
git version 2.13.0.windows.1

我试过

由于上一个命令不起作用,我查看了如何设置WinMerge:

D:\...> git config --get difftool.winmerge.cmd
"C:/Program Files (x86)/WinMerge/winmergeu.exe" -e -u "$LOCAL" "$REMOTE"

我看到它使用正斜杠,所以我也试过了:

C:\...> git config --global difftool.windiff.cmd "C:/Program Files (x86)/WinDiff/WinDiff.exe" 
"$LOCAL" "$REMOTE"

usage: git config [<options>]

Config file location
    --global              use global config file
    --system              use system config file
    --local               use repository config file
[...]

取消设置也无济于事:

C:\...> git config --global --unset difftool.windiff.cmd

我在同事的电脑上试过了同样的结果。

1 个答案:

答案 0 :(得分:0)

请按照以下步骤进行:

1)将vagrant reload复制到windiff.exe

2)创建包装文件C:/WinDiff.exe

C:/windiff/windiff.sh

3)通过cmd(在管理模式下)将windiff目录添加到路径:

#!/bin/sh
"C:/WinDiff.exe" "$1" "$2"

4)添加到setx path "%path%;C:\windiff" (在.gitconfig中):

C:/user/xxx/.gitconfig

5)使用它:

[diff] 
tool = windiff 
[difftool "windiff"] 
cmd = windiff.sh \"$LOCAL\" \"$REMOTE\" 
[difftool] 
prompt = false

OR

git difftool