Emacs 中可以使用 git-timemachine 浏览 git 仓库中的文件的历史版本,Bozhidar Batsov 在他的一篇博文中比较详细地介绍过这一插件的功能。
但如果你已经在使用 Magit (应该有很多 Emacser 都在用吧),Magit 中的 magit-file-dispatch
提供了相似的功能。这样又可以少装一个包了。
magit-file-dispatch
默认绑定在 C-c M-g 上。它会弹出一个 transient menu ,有很多针对当前文件的 actions 。
其中:
- p :
magit-blob-previous
,前一个版本。 - n :
magit-blob-next
,后一个版本。
就构成了 timemachine 的功能。
如果需要一个时间线的概览,在 magit-file-dispatch
的 actions menu 上按 l ,magit-log-buffer-file
,就会显示当前文件的 log 。在某一 entry 上按 RET ,会显示相应的 commit 信息。在 commit 信息中移动光标到 diff 中,按 RET ,就会进入该 commit 提交时的文件状态。
注意,在 timemachine 中浏览的这些文件都是只读的,想要退出 timemachine ,只需按 q 。
参考链接