【问题标题】:Why is my difftool not working anymore?为什么我的 difftool 不再工作了?
【发布时间】:2018-04-23 14:38:06
【问题描述】:

它曾经可以工作,但在更换我的笔记本电脑后,它不再被识别。非常感谢任何帮助!

这是我尝试使用 Git Bash (git version 2.16.2.windows.1):

$ git config --list --show-origin
...
file:"C:\\Git\\mingw64/etc/gitconfig"   difftool.kdiff3.cmd='C:/Program Files/KDiff3/kdiff3' $LOCAL $REMOTE
file:"C:\\Git\\mingw64/etc/gitconfig"   difftool.kdiff3.keepbackup=false
file:"C:\\Git\\mingw64/etc/gitconfig"   difftool.kdiff3.trustexitcode=false
file:"C:\\Git\\mingw64/etc/gitconfig"   merge.conflictstyle=diff3
...

我复制了旧的工作配置文件。但后来:

$ git difftool master devSQC

This message is displayed because 'diff.tool' is not configured.
See 'git difftool --tool-help' or 'git help config' for more details.
'git difftool' will now attempt to use one of the following tools:
kompare emerge vimdiff
...

$ git difftool --tool-help
'git difftool --tool=<tool>' may be set to one of the following:
                vimdiff
                vimdiff2
                vimdiff3

        user-defined:
                kdiff3.cmd 'C:/Program Files/KDiff3/kdiff3' $LOCAL $REMOTE

The following tools are valid, but not currently available:
                araxis
                bc
                bc3
                codecompare
                deltawalker
                diffmerge
                diffuse
                ecmerge
                emerge
                examdiff
                gvimdiff
                gvimdiff2
                gvimdiff3
                kdiff3
                kompare
                meld
                opendiff
                p4merge
                tkdiff
                winmerge
                xxdiff

Some of the tools listed above only work in a windowed
environment. If run in a terminal-only session, they will fail.

$ git difftool -t=kdiff3 master devSQC

Viewing (1/61): '.gitignore'
Launch '_kdiff3' [Y/n]? y
Unknown merge tool _kdiff3
fatal: external diff died, stopping at .gitignore

【问题讨论】:

  • kdiff3 被认为是有效的,但不可用。您是否在新笔记本电脑上安装了kdiff3
  • @LeGEC 是的,exe 在C:\Program Files\KDiff3\kdiff3.exe 中我还尝试将路径(包含空格)包含在另一个" 中,但它也没有帮助。
  • 会不会是git difftool -t kdiff3 master devSQC 而不是git difftool -t_kdiff3 master devSQC?有一个_
  • @Jesferman 有错字。我用git difftool -t=kdiff3 master devSQC。请参阅我的编辑。但你是对的!您的建议现在有效。如果您愿意,可以将其发布为答案。奇怪 - 为什么会改变? ...
  • 太棒了!也许您将长选项的语法与短选项混合在一起?我在答案中解释了。

标签: windows git git-difftool


【解决方案1】:

你必须改变这一行:

git difftool -t=kdiff3 master devSQC

通过:

git difftool -t kdiff3 master devSQC

或:

git difftool --tool=kdiff3 master devSQC

通常,像-t 这样的短参数后跟一个空格字符。像--tool 这样的长选项后跟=。这是一种约定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    相关资源
    最近更新 更多