18

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

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

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

替代文字

4

9 回答 9

12

从 git v1.7.11 开始,您可以使用git difftool --dir-diff来执行目录差异。

以下答案适用于 v1.7.11 之前的 git 安装。


正如其他人所提到的,git difftool可用于在 GUI 中打开您的差异。但是,如果您有多个文件进行了更改,它将为每个文件打开一个单独的 GUI 实例。

我编写了一个脚本来解决这个“功能”,并允许在单个 GUI 实例中打开所有文件。您可以git diffall在 GitHub 上找到该脚本

此外,您可能对这个相关的 SO 问题感兴趣:

git difftool,立即打开所有差异文件,而不是串行

于 2010-11-29T14:46:06.413 回答
7

如果您想要一个人性化的 UI,但仍想留在您的终端中,您可以使用:

git tui diff [args...]

!演示

安装

git-tui

sudo snap install git-tui

https://github.com/ArthurSonzogni/git-tui

免责声明:我是作者。

它是一个在 MIT 许可下的开源项目。

于 2021-05-22T18:33:17.227 回答
5

Beyond Compare很好地做到了这一点——创建 .diff 文件的基本“git diff”命令不需要更改配置。Beyond Compare 会在文件树视图中显示 .diff 文件中引用的所有文件,并在您选择每个文件时显示每个文件的差异。

在 Beyond Compare 中,使用“工具 -> 查看补丁”菜单选项

于 2019-04-03T15:43:55.930 回答
2

IntelliJ、GoLand、PyCharm 等 JetBrains 产品都内置了差异工具。如果您想在当前提交与先前提交之间进行差异,只需右键单击代码行左侧并打开注释,然后单击任何注释,您将查看所有文件差异。

此外,如果您想查看当前分支与另一个分支(如 origin/master)的差异,您也可以这样做。您只需右键单击根目录并将鼠标悬停在 Git 菜单上,然后单击与分支比较并选择 master,您可以一起查看所有差异,就像在 Github 上查看拉取请求一样。

于 2020-04-15T17:45:04.353 回答
1

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

于 2018-08-29T10:45:10.710 回答
1

这是一个执行此操作的站点 - Diffy - 共享差异的工具。

在那里您可以粘贴您的差异文本输出,或上传包含差异输出的文件,然后它会自动在树浏览器上显示差异。这适用于您没有任何权限在您的机器上安装程序的情况(感谢雇主!)。

于 2021-05-24T12:15:07.070 回答
0

git difftool 将运行所有流行的工具,如 meld、tkdiff 等。对于合并,您可以运行 git mergetool。

于 2010-11-12T22:17:09.697 回答
0

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

于 2010-11-29T14:21:08.190 回答
0

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

于 2010-11-11T23:50:40.720 回答