Почему мой difftool больше не работает?

Раньше работал, но после смены ноутбука больше не распознается. Любая помощь высоко ценится!

Вот что я пытался использовать 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

1 ответ

Решение

Вы должны изменить эту строку:

git difftool -t=kdiff3 master devSQC

либо:

git difftool -t kdiff3 master devSQC

или же:

git difftool --tool=kdiff3 master devSQC

Обычно короткие аргументы вроде -t сопровождаются пробелом И длинные варианты вроде --tool сопровождаются =, Это своего рода соглашение.

Другие вопросы по тегам