103

使用 Git 版本控制查看文件的更改历史记录讨论了在 Git 中查看文件历史记录的其他方式。

可以在 Emacs Magit 中完成吗?

4

5 回答 5

136

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

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

于 2013-04-12T08:30:07.580 回答
39

通过键入打开你的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

于 2016-05-30T17:02:25.547 回答
12

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

于 2014-01-08T14:25:49.140 回答
4

如果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)))
于 2013-01-16T07:14:33.603 回答
4

我不知道有什么办法。我只是使用M-x vc-print-log它似乎完成了同样的壮举。不过,这不是一种集成 magit 的方式。

于 2013-04-12T05:16:40.277 回答