为什么 git difftool 在发生冲突时不打开 vimdiff?

Why git difftool does not open vimdiff in case of conflicts?

看完this, 我通过将以下行添加到我的 ~/.gitconfig:

来配置 git 使用 vimdiff 作为 diff/merge 工具
[diff]
        tool = vimdiff
[merge]
        tool = vimdiff
[difftool]
        prompt = false
[alias]
        d = difftool

但是 git difftool 仍然只打印 diff(没有 vimdiff)。有什么想法吗?

更新。 似乎 git difftool 工作正常,如果我在 repo 中有一些未提交的更改,即它按预期打开 vimdiff。但是,如果我在与冲突合并后执行 git difftool,它无法打开 vimdiff。任何想法为什么?

我不知道 why。 但要修复它,请重置冲突文件的状态。

git status
    both modified: mymyfile.txt

git difftool myfile.txt #Fails
git reset myfile.txt

git status
    M myfile.txt

git difftool myfile.txt #should work

好的,我找到了答案here。 如果发生冲突,必须使用 git mergetool 而不是 git difftool