在Magit中查看文件的历史记录?


Answers:


113

从magit 2.1开始:(magit-log-buffer-file按照下面的评论)

在magit 2.1之前:magit-file-log您正在寻找什么。它将在标准magit日志视图中显示当前缓冲区中文件的所有提交。


9
从magit 2.1开始,magit-file-log改名为magit-log-buffer-file
Anton I. Sipos

9
不幸的是,magit-log-buffer-file并不将每次提交的显示限制为仅对该文件的显示。
罗宾·格林

4
@CatalinHritcu它可以很好地显示影响该文件的所有提交,但它并不将每个提交的显示限制为仅显示该文件。
wilkystyle

5
到目前为止,我发现的最方便的方法是在您选择的提交上调用magit-log-buffer-file然后运行magit-ediff-dwim(绑定到Spacemacs中的“ e”快捷方式)。这将显示一个带有两个带有突出显示的更改的窗格的窗口。
朱拉·马丁卡

1
不清楚是什么// @罗宾绿色和@wilkystyle所描述,但也许击键l-u以及l将后帮助magit-log-buffer-file
dickmao

33

magit-status通过键入来打开缓冲区M-x magit-status(我以前一直将此绑定到该目录,C-. C-g因为它一直被使用。这些天,我使用Spacemacs,所以是<SPC> g s

  1. 键入l以获取日志查看选项
  2. 键入--以设置“限制为文件”选项(以前是=f
  3. 输入您要查看其历史记录的文件路径
  4. 键入l以查看当前分支的日志

如果您使用的是Spacemacs,则可以使用以下命令获取当前访问的文件的历史记录 <SPC> g f h


1
我认为第2步现在是--Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux
利亚姆

1
很好,还可以处理某些时候删除的文件。
君特Zöchbauer


3

我不知道办法。我只是简单地使用M-x vc-print-log它来完成同样的壮举。但是,这不是一种整合的方式。


2

如果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
phils

Symbol’s function definition is void: git-marked-files
收到

1
@alp 7年后,使用操作系统,eclipse和magic插件的确切版本,可以更好地用自己的问题来表示该问题。
VonC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.