我已经与我的 git 。
我需要的是查看两个分支之间的目录差。当我运行
时 git difftool <headbranch>
命令它一一打开所有文件。但这不是我想要的。
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/git/docs/git-difftool.html
假设,我们有两个分支 master 和 base 为了查看这些分支之间的区别,只需执行:
git difftool -d base:src/ master:src/
在我的情况下,您的预设差异工具应该开始启动。或者,您也可以使用--tool
选项来启动另一个:例如使用 vimdiff
git difftool -d --tool=vimdiff base:src/ master:src/
或使用 kdiff3 以相同的方式
git difftool -d --tool=kdiff3 base:src/ master:src/
您可以使用
git diff --name-status <other-branch>
它列出了具有差异的文件,状态为a/m/d。
我没有发现使用kdiff3和标准git工具在目录比较模式下看到两个分支之间的目录差的可能性。
使用标准工具可以完成的操作(如果我错了,请解决我的问题:)是通过文件比较使用difftool进行的,然后在控制台中使用:
在控制台中概述git diff --name-status <other-branch>
但是我找到了全面的图形Git Diff查看器脚本,可以根据需要为我完成工作 - 比较Kdiff3中的整个目录。
该工具只是一个外壳脚本,它在/tmp文件夹中创建了一个将要出现的分支快照,并在其上运行KDIFF3文件夹比较。
在此处查看脚本