View a file's history in Magit?

前端 未结 5 1354
孤城傲影
孤城傲影 2021-01-30 01:18

View the change history of a file using Git versioning talks about other ways of viewing history of a file in Git.

Can it be done in Emacs Magit?

相关标签:
5条回答
  • 2021-01-30 01:47

    In your *magit: <project>* buffer use l to go into logging mode, then press f to be prompted for a filename.

    0 讨论(0)
  • 2021-01-30 02:07

    I do not know a way. I simply use M-x vc-print-log which seems to accomplish the same feat. It is not a magit-integrated way, though.

    0 讨论(0)
  • 2021-01-30 02:09

    Open your magit-status buffer, by typing M-x magit-status (I used to have this bound to C-. C-g because it is used all the time. These days, I use Spacemacs so it's <SPC> g s)

    1. Type l to get log viewing option
    2. Type -- to set the "Limit to files" option (used to be =f)
    3. Enter the file path you wish to view history for
    4. Type l to view the log of the current branch

    If you're using Spacemacs, you can get the history of the currently visited file using <SPC> g f h

    0 讨论(0)
  • 2021-01-30 02:11

    Since magit 2.1: magit-log-buffer-file (as per comment below)

    Before magit 2.1: magit-file-log is what you are looking for. It will show you all commits for the file in the current buffer in the standard magit log view.

    0 讨论(0)
  • 2021-01-30 02:11

    If magit (user manual) doesn't have that feature, then you can have a look at other Emacs mode, and add you own git-log-file function:

    (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)))
    
    0 讨论(0)
提交回复
热议问题