【问题标题】:git blame with commit details in emacsgit blame 与 emacs 中的提交详细信息
【发布时间】:2013-03-05 19:53:33
【问题描述】:

从 emacs 中,我如何查看上次更改该行的提交的详细信息(例如提交消息)?

我已经安装了 magit。

【问题讨论】:

    标签: git emacs magit


    【解决方案1】:

    这个特定的操作不需要使用 magit - vanilla emacs 可以做到。

    (另外,因为它使用了 vc,所以它应该在 vc 支持的任何版本控制系统中都可以正常工作。)

    首先,使用vc-annotate命令,绑定键序列C-x v g

    现在,重点应该是您感兴趣的提交 id。(如果没有,您可能需要使用 Cx 1 和/或 v 以便您可以看到哪一行是哪一行,以便导航到正确的行。)您现在可以使用 = 查看该文件的差异 - 如果您得到以“cannot diff from any revision previous...”开头的错误,这可能意味着此版本创建了文件(这可能是 emacs 中的错误)。

    作者和日期已经在 vc-annotate 生成的 Annotate 缓冲区中可见。

    要查看提交消息,请在 Annotate 缓冲区中按 l(字母,而不是数字 1)。要查看该版本的文件是什么样子,请在 Annotate 缓冲区或 vc-change-log 缓冲区中按 f。 p>

    【讨论】:

    • a 是金钱行动——在改变之前表现出责备。节省了我很多时间。
    • 我非常喜欢这种模式!我不需要在终端和 emacs 之间不断切换。如果可以的话 +100!
    • 另外,vc-annotate 的输出对我来说比 magit-blame-mode 更有意义。
    • 虽然vc-annotate 的输出格式在很多方面都比magit-blame 的要好,但后者要快得多,这对我来说是一种摇摆不定的方式。
    【解决方案2】:

    我建议使用magit-blame-mode (M-x magit-blame-mode)。与vc-annotate 相比,它以更好的方式提供信息,并且是标准 magit 发行版的一部分。您可能希望将其绑定到某个键盘组合以快速切换它。

    magit-blame-mode 中,使用 pn 在上一个和下一个更改之间导航,并使用 RET 查看特定的差异提交。

    【讨论】:

    • 啊,我不知道。我个人觉得vc-annotate 输出(或任何传统的责备输出)比这更具可读性;但有替代品总是好的。
    • 我觉得提交者的名字在vc-annotate的输出中浪费了太多的空间。
    • @BozhidarBatsov 按v 隐藏细节,你还有年龄颜色编码的责任。
    • 我发现magit-blame-mode 的输出在混合/交错代码和提交历史的方式上几乎不可读。有没有办法让它显示像vc-annotate(或git blame,或者实际上代码与注释分开的任何其他可读格式)这样的输出?
    • 其实magit-blame-mode没有vc-annotate的主要有用特性,它的'A'(注释在当前行之前的修订)。所以这是另一个在这一点上更喜欢 vc-annotate 的原因,就像 magit 一样棒。
    猜你喜欢
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    相关资源
    最近更新 更多