Wyświetl historię zmian pliku za pomocą funkcji obsługi wersji Git, omawia inne sposoby przeglądania historii pliku w Git.
Czy można to zrobić w Emacs Magit?
Wyświetl historię zmian pliku za pomocą funkcji obsługi wersji Git, omawia inne sposoby przeglądania historii pliku w Git.
Czy można to zrobić w Emacs Magit?
Odpowiedzi:
Od magit 2.1:
magit-log-buffer-file
(zgodnie z komentarzem poniżej)Przed Magit 2.1:
magit-file-log
jest to, czego szukasz. Pokaże ci wszystkie zatwierdzenia dla pliku w bieżącym buforze w standardowym widoku dziennika magit.źródło
magit-file-log
został przemianowany namagit-log-buffer-file
magit-log-buffer-file
nie ogranicza wyświetlania każdego zatwierdzenia tylko do tego pliku.magit-log-buffer-file
a następnie uruchomieniemagit-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.l
,-u
orazl
pomogą pomagit-log-buffer-file
Otwórz
magit-status
bufor, wpisującM-x magit-status
(kiedyś miałem to związane,C-. C-g
ponieważ jest używane przez cały czas. Obecnie używam Spacemacs, więc tak jest<SPC> g s
)l
aby uzyskać opcję przeglądania dziennika--
aby ustawić opcję „Ogranicz do plików” (wcześniej=f
)l
aby wyświetlić dziennik bieżącej gałęziJeśli używasz Spacemacs, możesz pobrać historię aktualnie odwiedzanego pliku za pomocą
<SPC> g f h
źródło
--
(Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux
)W swoim
*magit: <project>*
buforze użyj,l
aby przejść do trybu logowania, a następnie naciśnij,f
aby wyświetlić monit o podanie nazwy pliku.źródło
Nie znam sposobu. Po prostu używam,
M-x vc-print-log
który wydaje się wykonywać ten sam wyczyn. Nie jest to jednak sposób zintegrowany z magitem.źródło
Jeśli magit ( instrukcja obsługi ) nie ma tej funkcji, możesz rzucić okiem na inny tryb Emacsa i dodać własną
git-log-file
funkcję:(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)))
źródło
C-x v l
Symbol’s function definition is void: git-marked-files