在GUI中探索git-diff输出?

问题描述 投票:9回答:7

是否有允许在GUI中探索输出git-diff命令的程序?

我正在寻找的是类似于SmartGit如何显示其对工作副本和HEAD之间差异的看法。显示与HEAD不同的每个文件,并显示焦点文件的差异。

我不确定是否可以使SmartGit显示“git diff”命令的输出。

git git-diff
7个回答
10
投票

从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


1
投票

git diff有一个--ext-diff选项,可以将diff输出传递给外部diff程序。已知可与Git一起使用的流行开源差异程序包括kdiff3Meld


1
投票

git difftool将运行所有流行的,如meld,tkdiff等。另外,对于合并,你可以运行git mergetool。


1
投票

我不确定我是否正确理解了您的问题,但显然在下一版本的SmartGit(2.0, currently available in alpha)中,您可以使用日志窗口在任意提交之间进行差异 - 我还没有尝试过。


1
投票

Beyond Compare做得很好 - 基本的'git diff'命令不需要进行配置更改,这会创建.diff文件。 Beyond Compare显示文件树视图中.diff文件中引用的所有文件,以及选择它们时每个文件的差异。

在Beyond Compare中,使用“工具 - >视图修补程序”菜单选项


0
投票

请注意,您现在可以(git 1.7.11,2012年6月)差异目录(即在打开difftool之前显示要比较的所有文件,而不是每个文件对运行一次外部工具的实例。)

见“git difftool to give directory compare?


0
投票

我知道你正在寻找一个GUI而不是TUI,但是vi / vim / vimdiff将显示一个带有语法高亮的差异文件:view changes.diff,其中changes.diff是通过执行git --no-pager diff > changes.diff创建的。我一直在寻找一个可以读取其中一个文件的GUI的地方,但无济于事 - meld有一个--comparison-file=COMPARISON_FILE选项,但无论比较文件格式是什么,它都不适用于常规(统一)diff输出。

© www.soinside.com 2019 - 2024. All rights reserved.