【发布时间】:2012-12-30 10:46:01
【问题描述】:
View the change history of a file using Git versioning 讨论了在 Git 中查看文件历史记录的其他方式。
可以在 Emacs Magit 中完成吗?
【问题讨论】:
-
看起来这个答案是您正在寻找的内容的一部分emacs.stackexchange.com/a/7683/16879
View the change history of a file using Git versioning 讨论了在 Git 中查看文件历史记录的其他方式。
可以在 Emacs Magit 中完成吗?
【问题讨论】:
如果magit(user manual)没有这个功能,那么你可以看看其他Emacs mode,并添加你自己的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
我不知道方法。我只是使用M-x vc-print-log,它似乎完成了同样的壮举。不过,这不是一种集成 magit 的方式。
【讨论】:
从 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: <project>* 缓冲区中,使用l 进入记录模式,然后按f 以提示输入文件名。
【讨论】:
通过键入M-x magit-status 打开您的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-log-buffer-file 是你想要的。使用 Spacemacs,您可以使用 <SPC> g f h
(transient-append-suffix 'magit-log "l" '("f" "Current file" magit-log-buffer-file)),使用C-x M-g l f 访问。