是否有程序允许在 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
在 GitHub 上找到该脚本。
此外,您可能对这个相关的 SO 问题感兴趣:
如果您想要一个人性化的 UI,但仍想留在您的终端中,您可以使用:
git tui diff [args...]
sudo snap install git-tui
https://github.com/ArthurSonzogni/git-tui
免责声明:我是作者。
它是一个在 MIT 许可下的开源项目。
Beyond Compare很好地做到了这一点——创建 .diff 文件的基本“git diff”命令不需要更改配置。Beyond Compare 会在文件树视图中显示 .diff 文件中引用的所有文件,并在您选择每个文件时显示每个文件的差异。
在 Beyond Compare 中,使用“工具 -> 查看补丁”菜单选项
IntelliJ、GoLand、PyCharm 等 JetBrains 产品都内置了差异工具。如果您想在当前提交与先前提交之间进行差异,只需右键单击代码行左侧并打开注释,然后单击任何注释,您将查看所有文件差异。
此外,如果您想查看当前分支与另一个分支(如 origin/master)的差异,您也可以这样做。您只需右键单击根目录并将鼠标悬停在 Git 菜单上,然后单击与分支比较并选择 master,您可以一起查看所有差异,就像在 Github 上查看拉取请求一样。
我知道您正在寻找 GUI 而不是 TUI,但是 vi/vim/vimdiff 将显示一个带有语法突出显示的差异文件:view changes.diff
,其中changes.diff
是通过做git --no-pager diff > changes.diff
. 我一直在到处寻找可以读取其中一个文件的 GUI,但无济于事 -meld
有一个--comparison-file=COMPARISON_FILE
选项,但无论比较文件格式是什么,它都不适用于常规(统一)差异输出。
这是一个执行此操作的站点 - Diffy - 共享差异的工具。
在那里您可以粘贴您的差异文本输出,或上传包含差异输出的文件,然后它会自动在树浏览器上显示差异。这适用于您没有任何权限在您的机器上安装程序的情况(感谢雇主!)。
git difftool 将运行所有流行的工具,如 meld、tkdiff 等。对于合并,您可以运行 git mergetool。
我不确定我是否正确理解了您的问题,但显然在 SmartGit 的下一版本(2.0,目前在 alpha 中可用)中,您可以使用日志窗口在任意提交之间进行差异 - 我还没有尝试过.