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-logist das, wonach Sie suchen. Es zeigt Ihnen alle Commits für die Datei im aktuellen Puffer in der Standard-Magit-Protokollansicht.
magit-file-logwurde inmagit-log-buffer-file
magit-log-buffer-fileBeschränkt die Anzeige jedes Commits leider nicht nur auf diese Datei.
magit-log-buffer-fileund 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, -uund lhelfen nachmagit-log-buffer-file
Öffnen Sie Ihren magit-statusPuffer durch Eingabe M-x magit-status(ich habe dies früher gebunden, C-. C-gweil 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 lSie 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-fileFunktion 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