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

时间:2013-01-16 07:01:35

标签: git emacs magit

View the change history of a file using Git versioning讨论了在Git中查看文件历史记录的其他方法。

可以在Emacs Magit中完成吗?

5 个答案:

答案 0 :(得分:88)

自magit 2.1:magit-log-buffer-file(根据下面的评论)

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

答案 1 :(得分:27)

打开magit-status缓冲区,输入M-x magit-status(我曾经将此绑定到C-. C-g,因为它一直在使用。这些天,我使用Spacemacs所以&#39 ; s <SPC> g s

  1. 键入l以获取日志查看选项
  2. 键入=f以设置&#34;限制为文件&#34;选项
  3. 输入您要查看
  4. 历史记录的文件路径
  5. 键入l以查看当前分支的日志
  6. 如果您正在使用Spacemacs,则可以使用<SPC> g f h

    获取当前访问过的文件的历史记录

答案 2 :(得分:10)

*magit: <project>*缓冲区中使用l进入日志记录模式,然后按f以提示输入文件名。

答案 3 :(得分:2)

我不知道怎么回事。我只是使用M-x vc-print-log,这似乎完成了同样的壮举。然而,它并不是一种兼容魔术的方式。

答案 4 :(得分:1)

如果magituser 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)))