【发布时间】:2012-11-22 20:02:09
【问题描述】:
我试过了:
git diff sha1 sha2
但输出不是最好的,是否可以使用 gitk 看到 2 次提交之间的差异?
【问题讨论】:
我试过了:
git diff sha1 sha2
但输出不是最好的,是否可以使用 gitk 看到 2 次提交之间的差异?
【问题讨论】:
不,但你可以使用 meld 来做到这一点:
git checkout sha1
git reset sha2
git diftool --tool=meld
诀窍是,通过检查 sha1 然后重置为 sha2,您可以使它们之间的所有差异看起来都是未提交的更改。然后,meld 可以利用其查看未提交更改的能力,同时对所有涉及的文件进行 diff。
【讨论】:
不确定您是否真的想要差异,或者您是否想要正常的 gitk 表示,但仅适用于从 sha1 到 sha2 的提交
在后一种情况下,您可以提供所有正常的修订参数:https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
所以你可以做类似的事情
gitk sha1..sha2
或者如果master被合并到sha2分支并且你不想看到来自master和sha1的提交,那么第一个提交是从master分支使用
gitk master..sha2
【讨论】:
至少在 Windows 中是完全可能的:
【讨论】:
不幸的是,gitk 不支持这种方式的差异输出。 :-( 你可以使用git difftool。它支持许多内置工具。例如,你可以使用git difftool -t kdiff3 sha1 sha2。它一次显示一个文件差异。在 git list 上有关于通过 diff 工具一次支持多个文件,但我不确定最终结果如何。我还没有看到实现它的补丁。
【讨论】:
gitk 不能使用外部差异工具?顺便说一句,您现在可以使用git difftool -d sha1 sha2 查看目录差异。
gitk现在支持external diff,但它只能使用difftool一次diff一个文件。而且我确信git 现在支持使用git difftool -d sha1 sha2 命令进行目录差异,我的git 版本是1.8.0,我相信这个功能是在版本1.7.11 或其他一些早期版本中实现的。