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

eug*_*ene 74 git emacs magit

使用Git版本控制查看文件的更改历史记录,了解在Git中查看文件历史记录的其他方法.

可以在Emacs Magit中完成吗?

Rag*_*gge 96

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

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

  • 从magit 2.1开始,`magit-file-log`被重命名为`magit-log-buffer-file` (9认同)
  • 不幸的是,`magit-log-buffer-file`不会将每个提交的显示限制在该文件中. (9认同)
  • 到目前为止我发现的最方便的方法是调用`magit-log-buffer-file`,然后在你选择的提交中运行`magit-ediff-dwim`(绑定到Spacemacs中的"e"快捷方式).这将显示一个窗口,其中两个窗格具有突出显示的更改. (5认同)
  • @CatalinHritcu它可以很好地显示影响该文件的所有提交,但它不会将每个提交的显示限制为该文件. (4认同)
  • @RobinGreen:真的吗?这对我来说很有用. (3认同)

Bry*_*Ash 29

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


Bar*_*che 10

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

  • 这不再是瞬态地图中的一个选项,magit-20210303.1208 ...不确定它何时改变,可能与@Ragge提到的“在magit-2.1之前/之后”有关。 (2认同)

Von*_*onC 5

如果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)))
Run Code Online (Sandbox Code Playgroud)