用vimdiff查看所有`git diffs`

我将git diff设置为vimdiff,使用“ Git Diff with Vimdiff ”作为指导,并且按照预期工作,除非有许多文件有更改。

当有多个文件发生变化,我运行git diff ,它会打开第一个文件,在退出vimdiff的第一个实例后,出现以下消息:

 external diff died, stopping at filename 

这是一个完全不同于我习惯的行为。 我在过去与SVN有类似的设置,当对多个文件进行差异化时,我会检查第一个文件,然后使用:wq写入和退出,然后打开具有差异的下一个文件。

Git的情况并非如此。 我尝试过:n[ext] ,但是这样做并不能将原始文件填充到左侧窗口,以便可以根据修改后的版本进行区分。

 git config --global diff.tool vimdiff git config --global difftool.prompt false git config --global alias.d difftool 

键入git d产生预期的行为,在vim中键入:wq周期更改为变更集中的下一个文件。

你可以尝试git difftool ,它被devise来做这个东西。

首先,您需要将diff工具configuration为vimdiff

 git config diff.tool vimdiff 

然后,当你想diff,只需使用git difftool而不是git diff 。 它会像你期望的那样工作。

 Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff as valid diff tools. You can also set up a custom tool. git config --global diff.tool vimdiff git config --global diff.tool kdiff3 git config --global diff.tool meld git config --global diff.tool xxdiff git config --global diff.tool emerge git config --global diff.tool gvimdiff git config --global diff.tool ecmerge