Просмотр истории изменений файла с помощью управления версиями Git рассказывает о других способах просмотра истории файла в Git.
Можно ли это сделать в Emacs Magit?
Просмотр истории изменений файла с помощью управления версиями Git рассказывает о других способах просмотра истории файла в Git.
Можно ли это сделать в Emacs Magit?
Ответы:
Начиная с magit 2.1:
magit-log-buffer-file
(согласно комментарию ниже)До Magit 2.1:
magit-file-log
это то, что вы ищете. Он покажет вам все коммиты для файла в текущем буфере в стандартном представлении журнала magit.источник
magit-file-log
был переименован вmagit-log-buffer-file
magit-log-buffer-file
не ограничивает отображение каждого коммита только этим файлом.magit-log-buffer-file
а затем запуститьmagit-ediff-dwim
(привязанный к ярлыку «e» в Spacemacs) для фиксации по вашему выбору. Откроется окно с двумя панелями с выделенными изменениями.l
,-u
иl
поможет послеmagit-log-buffer-file
Откройте свой
magit-status
буфер, набравM-x magit-status
(раньше у меня была эта привязка,C-. C-g
потому что она используется все время. В наши дни я использую Spacemacs, так что это<SPC> g s
)l
чтобы получить возможность просмотра журнала--
чтобы установить параметр "Ограничить файлы" (раньше было=f
)l
для просмотра журнала текущей веткиЕсли вы используете Spacemacs, вы можете получить историю посещенного в данный момент файла, используя
<SPC> g f h
источник
--
(Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux
)В вашем
*magit: <project>*
буфере используйте,l
чтобы перейти в режим регистрации, затем нажмите,f
чтобы получить запрос имени файла.источник
Я не знаю способа. Я просто использую то,
M-x vc-print-log
что, кажется, совершает тот же подвиг. Однако это не интегрированный с магией способ.источник
Если magit ( руководство пользователя ) не имеет этой функции, вы можете взглянуть на другой режим Emacs и добавить свою собственную
git-log-file
функцию:(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