使用meld作为git的difftool,但在一个窗口中列出所有文件

时间:2015-03-03 14:13:13

标签: git git-config meld difftool git-difftool

我想使用meld作为git的差异工具。

如果我像这样配置.gitconfig

[difftool]
    prompt = false
[diff]
    tool = meld

并运行命令:$ git difftool
然后git为每个有变化的文件打开一个meld窗口。

但我希望在meld列表框中显示包含所有文件的单个窗口。 我已经阅读了一些关于-d--dir-diff选项的内容 当我尝试:$ git difftool -d
然后在每个融合部分打开一个窗口,其中一个目录树,但是包含空目录 我无法从这里打开文件。

enter image description here

有关信息:

$ git --version
git version 1.9.1
$ meld --version
meld 1.8.4
$ lsb_release -d
Description:    Ubuntu 14.04.2 LTS

我也在使用git svn,但我不认为这与我的问题有关;因为据我所知git-svn,我的目录是一个简单的git目录。

相关问题:
View differences of branches with meld?

1 个答案:

答案 0 :(得分:13)

我通过删除meld并使用它的新版本(3.12.3)解决了我的问题:
sudo apt-get remove meld

现在我的.gitconfig就像:

[difftool]
    prompt = false

[diff]
    tool = meld
    guitool = meld

[difftool "meld"]
    path = /home/me/App/meld/meld-3.12.3/bin/meld

以下命令的结果是:

  • git diff:每个修改过的文件的终端差异
  • git diff <myfile><myfile>
  • 的终端差异
  • git difftool <myfile>:meld diff of <myfile>
  • git difftool:meld diff每个修改过的文件,一个接一个
  • git difftool -d:将每个文件的差异合并到一个窗口中

我还将此行添加到我的bash_alias,但我认为它可以不用。
alias meld='/home/benjamin/Applications/meld/meld-3.12.3/bin/meld'