我已使用 git 配置 kDiff3 。
我需要的是查看两个分支之间的目录差异。我跑的时候
git difftool <headbranch>
命令它逐个打开所有文件。但那不是我想要的。
答案 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/