Wyświetlić historię pliku w Magit?

Odpowiedzi:

113

Od magit 2.1: magit-log-buffer-file(zgodnie z komentarzem poniżej)

Przed Magit 2.1: magit-file-logjest to, czego szukasz. Pokaże ci wszystkie zatwierdzenia dla pliku w bieżącym buforze w standardowym widoku dziennika magit.

Ragge
źródło
9
Od magit 2.1, magit-file-logzostał przemianowany namagit-log-buffer-file
Anton I. Sipos
9
Niestety, magit-log-buffer-filenie ogranicza wyświetlania każdego zatwierdzenia tylko do tego pliku.
Robin Green
4
@CatalinHritcu Działa dobrze przy wyświetlaniu wszystkich zatwierdzeń, które mają wpływ na ten plik, ale nie ogranicza wyświetlania każdego zatwierdzenia tylko do tego pliku.
wilkystyle
5
Najwygodniejszym sposobem, jaki znalazłem do tej pory, jest wywołanie, magit-log-buffer-filea następnie uruchomienie magit-ediff-dwim(powiązanego ze skrótem „e” w programie Spacemacs) na wybranym przez Ciebie zatwierdzeniu. Spowoduje to wyświetlenie okna z dwoma panelami z podświetlonymi zmianami.
Juraj Martinka
1
Jasne, co @ robin-zielony i @wilkystyle opisujesz, ale być może klawiszy l, -uoraz lpomogą pomagit-log-buffer-file
dickmao
33

Otwórz magit-statusbufor, wpisując M-x magit-status(kiedyś miałem to związane, C-. C-gponieważ jest używane przez cały czas. Obecnie używam Spacemacs, więc tak jest <SPC> g s)

  1. Wpisz, laby uzyskać opcję przeglądania dziennika
  2. Wpisz, --aby ustawić opcję „Ogranicz do plików” (wcześniej =f)
  3. Wprowadź ścieżkę do pliku, dla którego chcesz wyświetlić historię
  4. Wpisz, laby wyświetlić dziennik bieżącej gałęzi

Jeśli używasz Spacemacs, możesz pobrać historię aktualnie odwiedzanego pliku za pomocą <SPC> g f h

Bryan Ash
źródło
1
Myślę, że krok 2 to teraz --( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux)
Liam
1
Świetnie, działa również z plikami, które zostały kiedyś usunięte.
Günter Zöchbauer
11

W swoim *magit: <project>*buforze użyj, laby przejść do trybu logowania, a następnie naciśnij, faby wyświetlić monit o podanie nazwy pliku.

Bart Vandendriessche
źródło
3

Nie znam sposobu. Po prostu używam, M-x vc-print-logktóry wydaje się wykonywać ten sam wyczyn. Nie jest to jednak sposób zintegrowany z magitem.

sp3ctum
źródło
2

Jeśli magit ( instrukcja obsługi ) nie ma tej funkcji, możesz rzucić okiem na inny tryb Emacsa i dodać własną git-log-filefunkcję:

(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)))
VonC
źródło
Lub po prostu użyjC-x v l
phils
Mam następującą wiadomość:Symbol’s function definition is void: git-marked-files
alper
1
@alp 7 lat później ten problem byłby lepiej przedstawiony w swoim własnym pytaniu, z dokładną wersją systemu operacyjnego, wtyczką Eclipse i Magic.
VonC