View a file's history in Magit?
使用git版本控制查看文件的更改历史记录谈论在git中查看文件历史记录的其他方法。
可以在Emacs Magit中完成吗?
- 看起来这个答案是您正在寻找的emacs.stackexchange.com/a/7683/16879的一部分。
自Magit 2.1起:magit-log-buffer-file(见下文评论)
在Magit 2.1之前:你要找的是magit-file-log。它将在标准的magit日志视图中显示当前缓冲区中文件的所有提交。
- 自Magit 2.1以来,magit-file-log更名为magit-log-buffer-file。
- 不幸的是,magit-log-buffer-file并没有将每个提交的显示限制为只显示该文件。
- @罗宾格林:真的吗?它对我很管用。
- @catalinhritcu可以很好地显示影响该文件的所有提交,但它不会将每个提交的显示仅限于该文件。
- 到目前为止,我发现最方便的方法是调用magit-log-buffer-file,然后在您选择的时候运行magit-ediff-dwim(绑定到spacemacs中的"e"快捷方式)。这将显示一个窗口,其中有两个带突出显示更改的窗格。
- 不清楚@robin green和@wilkystyle在描述什么,但可能在magit-log-buffer-file之后,按键l、-u和l会有所帮助。
打开你的magit-status缓冲区,输入M-x magit-status(我以前把它绑定到C-. C-g上,因为它一直在使用。这些天,我用的是太空Macs,所以是 g s
键入l以获取日志查看选项
键入=f以设置"文件限制"选项
输入要查看其历史记录的文件路径
键入l查看当前分支的日志
如果您使用的是spacemacs,则可以使用 g f h获取当前访问文件的历史记录。
- 谢谢你的回答,不知道!
- @尤金,如果你现在更喜欢这个答案而不是你选择的答案,那么改变你的想法永远不会晚。)
在您的*magit: *缓冲区中,使用l进入日志模式,然后按f提示输入文件名。
我不知道怎么办。我只是简单地使用M-x vc-print-log,它似乎完成了同样的壮举。不过,这并不是一种巧妙的综合方法。
如果magit(用户手册)没有该功能,那么您可以查看其他Emacs模式,并添加您自己的git-log-file功能:
1 2 3 4 5 6 7 8 9 10
| (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))) |