Visualizzare la cronologia di un file in Magit?


Risposte:


116

Da magit 2.1: magit-log-buffer-file(come da commento sotto)

Prima di magit 2.1: magit-file-logè quello che stai cercando. Ti mostrerà tutti i commit per il file nel buffer corrente nella visualizzazione standard del registro di magit.


9
Da magit 2.1, è magit-file-logstato ribattezzatomagit-log-buffer-file
Anton I. Sipos

9
Sfortunatamente, magit-log-buffer-filenon limita la visualizzazione di ogni commit solo a quel file.
Robin Green

4
@CatalinHritcu Funziona bene per visualizzare tutti i commit che influenzano quel file, ma non limita la visualizzazione di ogni commit solo a quel file.
Wilkystyle

5
Il modo più conveniente che ho trovato finora è invocare magit-log-buffer-filee quindi eseguire magit-ediff-dwim(associato alla scorciatoia "e" in Spacemacs) sul commit di tua scelta. Questo mostrerà una finestra con due riquadri con le modifiche evidenziate.
Juraj Martinka

1
Chiaro che cosa @ robin-verde e @wilkystyle stanno descrivendo, ma forse le sequenze di tasti l, -ue lcontribuiranno dopomagit-log-buffer-file
dickmao

33

Apri il tuo magit-statusbuffer, digitando M-x magit-status(lo avevo associato a C-. C-gperché è sempre usato. In questi giorni, uso Spacemacs quindi è <SPC> g s)

  1. genere l per ottenere l'opzione di visualizzazione del registro
  2. Digita --per impostare l'opzione "Limita ai file" (una volta =f)
  3. Immettere il percorso del file di cui si desidera visualizzare la cronologia
  4. Digita lper visualizzare il registro del ramo corrente

Se stai usando Spacemacs, puoi ottenere la cronologia del file attualmente visitato usando <SPC> g f h


1
Penso che il passaggio 2 sia ora --( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux)
Liam

1
Bello, funziona anche con i file che sono stati cancellati ad un certo punto.
Günter Zöchbauer

11

Nel *magit: <project>*buffer utilizzare lper entrare in modalità di registrazione, quindi premere fper richiedere un nome file.


3

Non conosco un modo. Uso semplicemente M-x vc-print-logche sembra realizzare la stessa impresa. Tuttavia, non è un modo integrato con magit.


2

Se magit ( manuale utente ) non ha questa funzionalità, puoi dare un'occhiata alle altre modalità di Emacs e aggiungere la tua git-log-filefunzione:

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

Oppure usa semplicementeC-x v l
phils

Ho il seguente messaggio:Symbol’s function definition is void: git-marked-files
alper

1
@alp 7 anni dopo, quel problema sarebbe stato meglio rappresentato nella sua stessa domanda, con la versione esatta del sistema operativo, eclipse e magic plugin.
VonC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.