¿Ver el historial de un archivo en Magit?

Respuestas:

113

Desde magit 2.1: magit-log-buffer-file(según el comentario a continuación)

Antes de magit 2.1: magit-file-loges lo que estás buscando. Le mostrará todas las confirmaciones para el archivo en el búfer actual en la vista estándar de registro de magit.

Ragge
fuente
9
Desde magit 2.1, magit-file-logpasó a llamarsemagit-log-buffer-file
Anton I. Sipos
9
Desafortunadamente, magit-log-buffer-fileno restringe la visualización de cada confirmación solo a ese archivo.
Robin Green
4
@CatalinHritcu Funciona bien para mostrar todas las confirmaciones que afectan a ese archivo, pero no restringe la visualización de cada confirmación solo a ese archivo.
wilkystyle
5
La forma más conveniente que he encontrado hasta ahora es invocar magit-log-buffer-filey luego ejecutar magit-ediff-dwim(enlazado al acceso directo "e" en Spacemacs) en la confirmación de su elección. Esto mostrará una ventana con dos paneles con cambios resaltados.
Juraj Martinka
1
Claro qué @ robin-verde y @wilkystyle están describiendo, pero tal vez las pulsaciones de teclado l, -uy layudarán despuésmagit-log-buffer-file
dickmao
33

Abra su magit-statusbúfer, escribiendo M-x magit-status(solía tener esto vinculado C-. C-gporque se usa todo el tiempo. En estos días, uso Spacemacs, por lo que es <SPC> g s)

  1. Escriba lpara obtener la opción de visualización de registros
  2. Escriba --para establecer la opción "Límite de archivos" (solía ser =f)
  3. Ingrese la ruta del archivo para el que desea ver el historial
  4. Escriba lpara ver el registro de la rama actual

Si está usando Spacemacs, puede obtener el historial del archivo visitado actualmente usando <SPC> g f h

Bryan Ash
fuente
1
Creo que el paso 2 es ahora --( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux)
Liam
1
Bien, funciona también con archivos que se eliminaron en algún momento.
Günter Zöchbauer
11

En su *magit: <project>*búfer, use lpara entrar en modo de registro, luego presione fpara que se le solicite un nombre de archivo.

Bart Vandendriessche
fuente
3

No conozco el camino. Simplemente uso lo M-x vc-print-logque parece lograr la misma hazaña. Sin embargo, no es una forma integrada de magit.

sp3ctum
fuente
2

Si magit ( manual de usuario ) no tiene esa característica, entonces puede echar un vistazo a otro modo de Emacs y agregar su propia git-log-filefunción:

(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
fuente
O simplemente useC-x v l
phils
Tengo el siguiente mensaje:Symbol’s function definition is void: git-marked-files
alper
1
@alp 7 años después, ese problema estaría mejor representado en su propia pregunta, con la versión exacta del sistema operativo, eclipse y el complemento mágico.
VonC