如何使用kdiff获取目录git branch diff

时间:2012-11-09 11:12:54

标签: git diff difftool kdiff3

我已使用 git 配置 kDiff3

我需要的是查看两个分支之间的目录差异。我跑的时候

git difftool <headbranch>

命令它逐个打开所有文件。但那不是我想要的。

4 个答案:

答案 0 :(得分:17)

git-difftool(1)现在满足此用例。只需使用--dir-diff(或-d)开关:

-d
--dir-diff
  Copy the modified files to a temporary location and perform
  a directory diff on them. This mode never prompts before
  launching the diff tool.

例如:

git difftool -d --tool=kdiff3 10c25f0da62929cca0b559095a313679e4c9800e..980de1bbe1f42c327ed3c9d70ac2ff0f3c2ed4e1

另见https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html

答案 1 :(得分:1)

我没有找到使用kdiff3和标准git工具在目录比较模式下查看两个分支之间的目录差异的可能性。

使用标准工具可以做什么(如果我错了就修复我:)是使用difftool进行文件比较,使用控制台进行概述:

git diff --name-status <other-branch>

但我找到Comprehensive Graphical Git Diff Viewer Script,根据需要为我做了工作 - 比较kdiff3中的整个目录。

该工具只是一个shell脚本,可以在/ tmp文件夹中创建待比较分支的快照,并对它们运行kdiff3文件夹比较。

签出脚本here

答案 2 :(得分:0)

您可以使用

git diff --name-status <other-branch>

它列出了具有差异的文件,状态为A / M / D.

答案 3 :(得分:0)

假设我们有两个分支 base 为了看到这些分支之间的区别,只需执行:

git difftool -d base:src/ master:src/

然后你的预设差异工具应该开始,在我的情况下是kdiff3。 或者您也可以使用--tool选项启动另一个选项: 例如 vimdiff

git difftool -d --tool=vimdiff  base:src/ master:src/

kdiff3 以同样的方式

git difftool -d --tool=kdiff3  base:src/ master:src/