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.quelle
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 dannmagit-ediff-dwim
(gebunden an die Verknüpfung "e" in Spacemacs) auszuführen. Dies zeigt ein Fenster mit zwei Fenstern mit hervorgehobenen Änderungen.l
,-u
undl
helfen nachmagit-log-buffer-file
Öffnen Sie Ihren
magit-status
Puffer durch EingabeM-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
quelle
--
(Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux
)*magit: <project>*
Verwendenl
Sie in Ihrem Puffer , um in den Protokollierungsmodus zu wechseln, und drücken Sief
, um zur Eingabe eines Dateinamens aufgefordert zu werden.quelle
Ich kenne keinen Weg. Ich benutze einfach,
M-x vc-print-log
was das gleiche Kunststück zu erreichen scheint. Es ist jedoch kein magit-integrierter Weg.quelle
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)))
quelle
C-x v l
Symbol’s function definition is void: git-marked-files