从emacs中,我如何查看最后更改光标所在行的提交的详细信息(例如提交消息)?
我已经安装了magit。
针对这个特定操作,不一定需要使用magit - vanilla emacs可以完成。
(同样,由于此操作使用vc,因此在vc支持的任何版本控制系统中都应该能够完全使用。)
首先,使用vc-annotate
命令,该命令绑定到键序列C-x v g。
现在,光标应该位于您感兴趣的提交ID处。(如果没有,您可能需要使用C-x 1和/或v,以便查看哪行是哪行,以便导航到正确的行。) 现在,您可以使用=来查看该文件的差异。如果您收到以“无法从之前的任何修订版本进行比较”的错误开头的错误消息,则可能意味着此修订版本创建了该文件(这可能是emacs中的一个错误)。
Annotate缓冲区中已经显示了作者和日期。
要查看提交消息,请在Annotate缓冲区中按下l(字母l,而不是数字1)。要查看该修订版本时文件的内容,请在Annotate缓冲区或vc-change-log缓冲区中按下f。
我建议使用magit-blame-mode
(M-x magit-blame-mode)。与vc-annotate
相比,它能以更好的方式提供信息,并且是标准Magit发行版的一部分。您可能希望将其绑定到某个键盘组合上,以便快速切换它。
在magit-blame-mode
中,使用p和n在前一个和后一个更改之间导航,使用RET查看特定提交的差异。
vc-annotate
的输出(或任何传统的 blame 输出)比这更易读;但拥有其他选择总是好的。 - philsvc-annotate
的输出中,提交者的名称占用了太多的空间。 - Bozhidar Batsovv
键隐藏细节,但年龄仍然以颜色编码的方式显示责任。 - event_jrmagit-blame-mode
的输出在混合/交错代码和提交历史的方式下几乎不可读。有没有办法使其显示像vc-annotate
(或git blame
,或任何其他可读格式)一样分离代码和注释的输出? - ShreevatsaRM-x magit-blame
会责怪那行之前的修订。所以它确实具有 'A' 功能。或者你可以在 magit-blame-mode
中输入 b
。 - Troy Daniels
vc-annotate
的输出格式在许多方面都比magit-blame
更好,但后者速度 _快得多_,这对我来说更重要。 - markshep