是否有允许在GUI中探索输出git-diff命令的程序?
我正在寻找的是类似于SmartGit如何显示其对工作副本和HEAD之间差异的看法。显示与HEAD不同的每个文件,并显示焦点文件的差异。
我不确定是否可以使SmartGit显示“git diff”命令的输出。
从git v1.7.11开始,您可以使用git difftool --dir-diff
来执行目录差异。
以下答案适用于早于v1.7.11的git安装。
正如其他人所提到的,git difftool
可能会用于在GUI中打开你的差异。但是,如果您有多个带有更改的文件,它将为每个文件打开一个单独的GUI实例。
我编写了一个脚本来解决这个“功能”,并允许在一个GUI实例中打开所有文件。你可以找到git diffall
script on GitHub。
此外,您可能对此相关的SO问题感兴趣:
git difftool, open all diff files immediately, not in serial
git difftool将运行所有流行的,如meld,tkdiff等。另外,对于合并,你可以运行git mergetool。
我不确定我是否正确理解了您的问题,但显然在下一版本的SmartGit(2.0, currently available in alpha)中,您可以使用日志窗口在任意提交之间进行差异 - 我还没有尝试过。
Beyond Compare做得很好 - 基本的'git diff'命令不需要进行配置更改,这会创建.diff文件。 Beyond Compare显示文件树视图中.diff文件中引用的所有文件,以及选择它们时每个文件的差异。
在Beyond Compare中,使用“工具 - >视图修补程序”菜单选项
请注意,您现在可以(git 1.7.11,2012年6月)差异目录(即在打开difftool之前显示要比较的所有文件,而不是每个文件对运行一次外部工具的实例。)
我知道你正在寻找一个GUI而不是TUI,但是vi / vim / vimdiff将显示一个带有语法高亮的差异文件:view changes.diff
,其中changes.diff
是通过执行git --no-pager diff > changes.diff
创建的。我一直在寻找一个可以读取其中一个文件的GUI的地方,但无济于事 - meld
有一个--comparison-file=COMPARISON_FILE
选项,但无论比较文件格式是什么,它都不适用于常规(统一)diff输出。