Anzeigen des Änderungsverlaufs einer Datei mithilfe der Git-Versionierung erläutert andere Möglichkeiten zum Anzeigen des Verlaufs einer Datei in Git.
Kann es in Emacs Magit gemacht werden?
Anzeigen des Änderungsverlaufs einer Datei mithilfe der Git-Versionierung erläutert andere Möglichkeiten zum Anzeigen des Verlaufs einer Datei in Git.
Kann es in Emacs Magit gemacht werden?
Antworten:
Seit Magit 2.1: magit-log-buffer-file
( laut Kommentar unten)
Vor Magit 2.1: magit-file-log
ist das, wonach Sie suchen. Es zeigt Ihnen alle Commits für die Datei im aktuellen Puffer in der Standard-Magit-Protokollansicht.
magit-file-log
wurde inmagit-log-buffer-file
magit-log-buffer-file
Beschränkt die Anzeige jedes Commits leider nicht nur auf diese Datei.
magit-log-buffer-file
und dann magit-ediff-dwim
(gebunden an die Verknüpfung "e" in Spacemacs) auszuführen. Dies zeigt ein Fenster mit zwei Fenstern mit hervorgehobenen Änderungen.
l
, -u
und l
helfen nachmagit-log-buffer-file
Öffnen Sie Ihren magit-status
Puffer durch Eingabe M-x magit-status
(ich habe dies früher gebunden, C-. C-g
weil es ständig verwendet wird. Heutzutage verwende ich Spacemacs, also ist es so <SPC> g s
)
l
, um die Option zur Protokollanzeige zu erhalten--
, um die Option "Auf Dateien beschränken" festzulegen (früher =f
)l
, um das Protokoll des aktuellen Zweigs anzuzeigenWenn Sie Spacemacs verwenden, können Sie den Verlauf der aktuell besuchten Datei mithilfe von abrufen <SPC> g f h
--
( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux
)
*magit: <project>*
Verwenden l
Sie in Ihrem Puffer , um in den Protokollierungsmodus zu wechseln, und drücken Sie f
, um zur Eingabe eines Dateinamens aufgefordert zu werden.
Wenn magit ( Benutzerhandbuch ) diese Funktion nicht hat, können Sie sich einen anderen Emacs-Modus ansehen und Ihre eigene git-log-file
Funktion hinzufügen :
(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)))
C-x v l
Symbol’s function definition is void: git-marked-files