使用Git版本控制查看文件的更改历史记录讨论了在Git中查看文件历史记录的其他方法。
可以在Emacs Magit中完成吗?
使用Git版本控制查看文件的更改历史记录讨论了在Git中查看文件历史记录的其他方法。
可以在Emacs Magit中完成吗?
Answers:
从magit 2.1开始:(magit-log-buffer-file
按照下面的评论)
在magit 2.1之前:magit-file-log
您正在寻找什么。它将在标准magit日志视图中显示当前缓冲区中文件的所有提交。
magit-file-log
改名为magit-log-buffer-file
magit-log-buffer-file
并不将每次提交的显示限制为仅对该文件的显示。
magit-log-buffer-file
然后运行magit-ediff-dwim
(绑定到Spacemacs中的“ e”快捷方式)。这将显示一个带有两个带有突出显示的更改的窗格的窗口。
l
,-u
以及l
将后帮助magit-log-buffer-file
magit-status
通过键入来打开缓冲区M-x magit-status
(我以前一直将此绑定到该目录,C-. C-g
因为它一直被使用。这些天,我使用Spacemacs,所以是<SPC> g s
)
l
以获取日志查看选项--
以设置“限制为文件”选项(以前是=f
)l
以查看当前分支的日志如果您使用的是Spacemacs,则可以使用以下命令获取当前访问的文件的历史记录 <SPC> g f h
--
(Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux
)
如果magit(用户手册)没有该功能,则可以查看其他Emacs模式,并添加自己的git-log-file
功能:
(defun git-log-file ()
"Display a log of changes to the marked file(s)."
(interactive)
(let* ((files (git-marked-files))
(buffer (apply #'git-run-command-buffer "*git-log*" "git-rev-list" \
"--pretty" "HEAD" "--" (git-get-filenames files)))) (with-current-buffer buffer
; (git-log-mode) FIXME: implement log mode
(goto-char (point-min))
(setq buffer-read-only t))
(display-buffer buffer)))
C-x v l
Symbol’s function definition is void: git-marked-files