我根据Git Diff with Vimdiff的指导,将git diff
设置为使用vimdiff来包装。它的效果很好,除非有多个有更改的文件。
当有多个更改的文件时,运行git diff
后,它会打开第一个文件,退出第一次vimdiff后,会出现以下消息:
external diff died, stopping at filename
这是我不习惯的完全不同的行为。过去我用SVN设置了类似的环境,当我需要对比多个文件时,我会查看第一个文件,然后使用:wq
写入并退出,接着下一个有差异的文件就会打开。
但是 Git 不是这样的。我尝试了 :n[ext]
,但这样做并没有在左侧窗口中显示原始文件,以便与修改后的版本进行对比。
df
aliased todiff
anddt
aliased todifftool
. Also, typing:qa
in Vim will cycle to the next changeset without saving anything。我的建议是:我将df
别名设置为diff
,将dt
别名设置为difftool
。此外,在 Vim 中键入:qa
将不保存任何内容并循环到下一个变更集。 - J.C. Yamokoskigit diff
而不是git difftool
。因此,我将d
别名设置为 'diff',将'dt'
别名设置为difftool
。可用性比按模式创建别名更重要。 - Mohammed H:w!
而不是:w
之外,这个解决方案非常棒。这是因为 git 使用-R
选项调用了vimdiff
。您可以使用git config --global difftool.vimdiff.cmd 'vimdiff "$LOCAL" "$REMOTE"'
来覆盖它。这将在可写模式下打开 vimdiff。 - wisbucky