【问题标题】:Using gitk, can I see the difference between 2 commits?使用 gitk,我可以看到 2 次提交之间的区别吗?
【发布时间】:2012-11-22 20:02:09
【问题描述】:

我试过了:

git diff sha1 sha2

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

【问题讨论】:

    标签: git gitk


    【解决方案1】:

    不,但你可以使用 meld 来做到这一点:

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

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

    【讨论】:

    • 我相信这是错误的。检查@Mr_and_Mrs_D 的答案
    【解决方案2】:

    不确定您是否真的想要差异,或者您是否想要正常的 gitk 表示,但仅适用于从 sha1sha2 的提交

    在后一种情况下,您可以提供所有正常的修订参数:https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html

    所以你可以做类似的事情

    gitk sha1..sha2
    

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

    gitk master..sha2
    

    【讨论】:

    • 标签同样适用。我们标记所有版本,这样我可以轻松查看两个已发布项目版本之间的所有提交消息和相关差异。如果您知道其他一些巧妙的方法来实现这一点,请告诉我 =)
    【解决方案3】:

    至少在 Windows 中是完全可能的:

    【讨论】:

    • 在 ubuntu 上也为我工作过。这是一个很好的解决方案,直到现在我才知道。从现在开始使用这个,谢谢!
    • 如何选择多个提交?我试过 CTRL 点击
    • @greenbrettmichael:我在 gitk 中看不到这样做的方法
    • 你不需要选择多个提交。只需单击一个以选择它,然后在另一个提交上单击鼠标右键,您将看到如上所示的弹出菜单。
    • 请注意,鼠标右键必须在提交注释上,而不是分支/标签名称。右键单击分支/标签名称会给你一个不同的菜单。
    【解决方案4】:

    不幸的是,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 或其他一些早期版本中实现的。
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多