关于git:在Magit中查看文件的历史记录?

View a file's history in Magit?

使用git版本控制查看文件的更改历史记录谈论在git中查看文件历史记录的其他方法。

可以在Emacs Magit中完成吗?


自Magit 2.1起:magit-log-buffer-file(见下文评论)

在Magit 2.1之前:你要找的是magit-file-log。它将在标准的magit日志视图中显示当前缓冲区中文件的所有提交。


打开你的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)))