Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gitk,我可以看到2次提交之间的区别吗?_Git_Gitk - Fatal编程技术网

使用gitk,我可以看到2次提交之间的区别吗?

使用gitk,我可以看到2次提交之间的区别吗?,git,gitk,Git,Gitk,我试过: git diff sha1 sha2 但是输出不是最好的,是否有可能看到使用gitk的两次提交之间的差异?不幸的是,gitk不支持这种方式的差异输出:-(您可以使用git difftool。它支持许多内置工具。例如,您可以使用git difftool-t kdiff3 sha1 sha2。它一次显示一个文件的差异。git列表上有关于通过diff工具一次支持多个文件的讨论,但我不确定这是从哪里结束的。)我还没有看到一个补丁实现它。在windows中,至少这是完全可能的: 不确定您是否真

我试过:

git diff sha1 sha2

但是输出不是最好的,是否有可能看到使用gitk的两次提交之间的差异?

不幸的是,
gitk
不支持这种方式的差异输出:-(您可以使用
git difftool
。它支持许多内置工具。例如,您可以使用
git difftool-t kdiff3 sha1 sha2
。它一次显示一个文件的差异。git列表上有关于通过diff工具一次支持多个文件的讨论,但我不确定这是从哪里结束的。)我还没有看到一个补丁实现它。

在windows中,至少这是完全可能的:


不确定您是否真的想要一个diff,或者是否想要正常的gitk表示,但仅限于从
sha1
sha2

在后一种情况下,可以提供所有常规修订参数:

所以你可以做像这样的事情

gitk sha1..sha2
或者,如果master被合并到
sha2
分支中,并且您不想看到来自master和
sha1
的提交,那么从
master
分支的第一个提交是否使用

gitk master..sha2

没有,但您可以使用meld来完成:

git checkout sha1
git reset sha2
git diftool --tool=meld

诀窍是,通过签出sha1,然后重置为sha2,您使它们之间的所有差异看起来都是未提交的更改。然后meld可以使用它的功能查看未提交的更改,同时对所有涉及的文件进行区分。

这是否意味着
gitk
不能使用外部difftool?顺便说一句,您可以使用
git difftool-d sha1 sha2
现在查看目录差异。不,我不这么认为:-(我发现
gitk
现在支持
external diff
,但它一次只能使用difftool来区分一个文件。我确信
git
现在使用
git difftool-d sha1 sha2
命令支持目录diff,我的git版本是
1.8.0
,我相信这个功能是在vers中实现的。)ion
1.7.11
或其他早期版本。在ubuntu中也为我工作过。这是一个非常好的解决方案,我直到现在才知道。从现在开始使用它,谢谢!如何选择多个提交?我尝试了CTRLclicking@greenbrettmichael:我在Gitky中找不到执行此操作的方法。您不需要选择多个提交。J只需单击其中一个来选择它,然后在另一个提交上单击鼠标右键,您将看到如上所示的弹出菜单。请注意,鼠标右键单击必须位于提交注释上,而不是分支/标记名称。右键单击分支/标记名称将为您提供不同的菜单。同样适用于标记。我们标记所有发布,这样我可以轻松地看到所有的提交两个发布的项目版本之间的t消息和相关差异。如果您知道实现这一点的其他方法,请让我知道=)我相信这是错误的。请检查@Mr_和_Mrs_D的答案