我设置 git diff 用来纳入Vimdiff,使用”vimdiff的git差异“作为指导,除非有很多更改的文件,否则它会按预期工作。

当有多个文件带有更改并运行时 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 产生预期行为,打字 :wq 在VIM循环中,在更改集中的下一个文件中。

其他提示

你可以试试 git difftool, ,它旨在做这些事情。

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

git config diff.tool vimdiff

然后,当您想分开时,只需使用 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top