Magit 中的 timemachine : 查看文件修改历史

Emacs 中可以使用 git-timemachine 浏览 git 仓库中的文件的历史版本,Bozhidar Batsov 在他的一篇博文中比较详细地介绍过这一插件的功能。

但如果你已经在使用 Magit (应该有很多 Emacser 都在用吧),Magit 中的 magit-file-dispatch 提供了相似的功能。这样又可以少装一个包了。

magit-file-dispatch 默认绑定在 C-c M-g 上。它会弹出一个 transient menu ,有很多针对当前文件的 actions 。

magit-transient-menu

其中:

  • pmagit-blob-previous ,前一个版本。
  • nmagit-blob-next ,后一个版本。

就构成了 timemachine 的功能。

如果需要一个时间线的概览,在 magit-file-dispatch 的 actions menu 上按 lmagit-log-buffer-file ,就会显示当前文件的 log 。在某一 entry 上按 RET ,会显示相应的 commit 信息。在 commit 信息中移动光标到 diff 中,按 RET ,就会进入该 commit 提交时的文件状态。

注意,在 timemachine 中浏览的这些文件都是只读的,想要退出 timemachine ,只需按 q


参考链接

使用 Emacs 自带的 tempo 取代 YASnippet