Verlauf einer Datei in Magit anzeigen?


Antworten:


113

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.


9
Seit Magit 2.1 magit-file-logwurde inmagit-log-buffer-file
Anton I. Sipos

9
magit-log-buffer-fileBeschränkt die Anzeige jedes Commits leider nicht nur auf diese Datei.
Robin Green

4
@CatalinHritcu Es funktioniert gut bei der Anzeige aller Commits, die diese Datei betreffen, aber es beschränkt die Anzeige jedes Commits nicht nur auf diese Datei.
Wilkystyle

5
Der bequemste Weg, den ich bisher gefunden habe, besteht darin, das Commit Ihrer Wahl aufzurufen 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.
Juraj Martinka

1
Unklar , was @ Robin-grün und @wilkystyle beschreiben, aber vielleicht die Tastenanschläge l, -uund lhelfen nachmagit-log-buffer-file
dickmao

33

Ö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)

  1. Geben Sie ein l, um die Option zur Protokollanzeige zu erhalten
  2. Geben Sie ein --, um die Option "Auf Dateien beschränken" festzulegen (früher =f)
  3. Geben Sie den Dateipfad ein, für den Sie den Verlauf anzeigen möchten
  4. Geben Sie ein l, um das Protokoll des aktuellen Zweigs anzuzeigen

Wenn Sie Spacemacs verwenden, können Sie den Verlauf der aktuell besuchten Datei mithilfe von abrufen <SPC> g f h


1
Ich denke, Schritt 2 ist jetzt --( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux)
Liam

1
Schön, funktioniert auch mit Dateien, die irgendwann gelöscht wurden.
Günter Zöchbauer

11

*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.


3

Ich kenne keinen Weg. Ich benutze einfach, M-x vc-print-logwas das gleiche Kunststück zu erreichen scheint. Es ist jedoch kein magit-integrierter Weg.


2

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)))

Oder benutze einfachC-x v l
phils

Ich habe folgende Nachricht:Symbol’s function definition is void: git-marked-files
Alper

1
@alp 7 Jahre später würde dieses Problem in seiner eigenen Frage mit der genauen Version des Betriebssystems, der Sonnenfinsternis und des magischen Plugins besser dargestellt.
VonC
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.