问题描述
我很高兴与git difftool --dir-diff
一起进行无与伦比的比较,以显示目录和文件之间的总体差异并浏览它们。
但是,当涉及到vimdiff时,似乎它不支持git的dir diff。我创建的git别名如下
dirdiff = difftool --ignore-submodules --tool=vimdiff --dir-diff --no-symlinks
执行git dirdiff HEAD~1 HEAD
之类的操作后,它将在netrw
文件浏览器中内置的vim左右列出我的2个目录。但是,在其中任何一个上按Enter键都不会使文件夹两侧都展开,更不用说打开并排差异文件。
vimdiff可以很好地在可视模式下显示单个文件差异,是否有办法使其也适用于--dir-diff
?
解决方法
我从另一个stackoverflow thread找到了解决方案。答案由@ user744629提供。遵循他的建议
- 安装vim dirdiff
- 在
.gitconfig
中添加以下配置
[alias]
dirdiff = difftool --ignore-submodules --dir-diff --no-symlinks --tool=vimdirdiff
[difftool "vimdirdiff"]
cmd = vim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)' $LOCAL $REMOTE
之后,您可以使用git dirdiff HEAD HEAD~1
来查看并排差异。