是否有允许在GUI中探索输出git-diff命令的程序?
我正在寻找的是类似于SmartGit如何显示其对工作副本和HEAD之间差异的看法。显示与HEAD不同的每个文件,并显示焦点文件的差异。
我不确定是否可以让SmartGit显示“git diff”命令的输出。
答案 0 :(得分: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 :(得分:1)
答案 2 :(得分:1)
git difftool将运行所有流行的,如meld,tkdiff等。另外,对于合并,你可以运行git mergetool。
答案 3 :(得分:1)
我不确定我是否正确理解了您的问题,但显然在下一版本的SmartGit(2.0, currently available in alpha)中,您可以使用日志窗口在任意提交之间进行差异 - 我还没试过但是。
答案 4 :(得分:1)
Beyond Compare很好地做到了这一点-无需对创建.diff文件的基本'git diff'命令进行任何配置更改。 “超出比较”将显示所有文件,这些文件在文件树视图中的.diff文件中被引用,并且在您选择文件时会显示每个文件的diff。
在“超越比较”中,使用“工具->查看补丁”菜单选项
答案 5 :(得分:0)
请注意,您现在可以(git 1.7.11,2012年6月)diff目录(即在打开difftool之前显示要比较的所有文件,而不是每个文件对运行一次外部工具的实例)。 )
答案 6 :(得分:0)
我知道您在寻找GUI而不是TUI,但是vi / vim / vimdiff将显示一个语法突出显示的diff文件:view changes.diff
,其中changes.diff
是通过{{ 1}}。我一直到处寻找一个GUI,该GUI会读取这些文件之一,但无济于事-git --no-pager diff > changes.diff
有一个meld
选项,但是不管比较文件格式是什么,它都不会使用常规(统一)差异输出。
答案 7 :(得分:0)
JetBrains产品(例如IntelliJ,GoLand,PyCharm等)均内置了差异工具。如果要在当前提交与上一次提交之间进行区分,只需右键单击代码行左侧并启用注释,然后单击任何注释,即可查看所有文件的区分。
此外,如果您想查看当前分支与另一个分支(如origin / master)的差异,也可以这样做。您只需右键单击根目录,然后将鼠标悬停在Git菜单上,然后单击“与分支比较”,然后选择“主”,即可一起查看所有差异,就像在Github上查看“拉取请求”一样。
答案 8 :(得分:0)
这里是 a site 来执行此操作 - Diffy - 一种用于共享差异的工具。
您可以在那里粘贴差异文本输出,或上传包含差异输出的文件,然后它会自动在树浏览器上显示差异。这适用于您没有任何权限在您的机器上安装程序的情况(谢谢雇主!)。