Git diff使用Meld目录对比功能

虽然使用git difftool已经基本满足了我的需要,但还有个小问题:如果我要比较两次提交之间的差异时,difftool只能一个文件一个文件的比较,每次都要提示你是否打开这个文件,然后打开meld进行比较,当你关闭meld后,才会提示下一个差异文件。这样非常浪费效率。能不能直接利用meld的目录比较能力呢?

搜了一下,果然有人把脚本写好了: https://github.com/thenigan/git-diffall

下下来以后,进行如下配置:
[shell]git config –global diff.tool meld
git config –global alias.diffall /PATH/TO/YOUR/git-diffall
# 注意该脚本文件的执行权限,如果没有请执行:
chmod 777 /PATH/TO/YOUR/git-diffall
[/shell]

现在试试 git diffall HEAD HEAD^1 ?

如果上述配置会遇到错误 “Expansion of alias ‘diffall’ failed; ‘/xxxx/git-diffall/git-diffall’ is not a git command”,最方便的解决方法就是创建一个软链接在你的PATH路径之一里,比如:
[shell]
ln -s /PATH/TO/YOUR/git-diffall ~/bin/git-diffall
[/shell]

然后配置
[shell]
git config –global diff.tool meld #这一行必须配置,否则diffall不知道该使用哪个diff程序
git config –global alias.diffall git-diffall
[/shell]

Continue reading “Git diff使用Meld目录对比功能”