Ver o histórico de um arquivo no Magit?


Respostas:


115

Desde magit 2.1: magit-log-buffer-file(conforme comentário abaixo)

Antes do magit 2.1: magit-file-logé o que você está procurando. Ele irá mostrar a você todos os commits para o arquivo no buffer atual na visualização do log magit padrão.


9
Desde magit 2.1, magit-file-logfoi renomeado paramagit-log-buffer-file
Anton I. Sipos

9
Infelizmente, magit-log-buffer-filenão restringe a exibição de cada commit apenas para aquele arquivo.
Robin Green de

4
@CatalinHritcu Funciona bem exibindo todos os commits que afetam aquele arquivo, mas não restringe a exibição de cada commit apenas para aquele arquivo.
wilkystyle

5
A maneira mais conveniente que encontrei até agora é invocar magit-log-buffer-filee então executar magit-ediff-dwim(vinculado ao atalho "e" no Spacemacs) no commit de sua escolha. Isso mostrará uma janela com dois painéis com alterações destacadas.
Juraj Martinka

1
Claro o que @ robin-verde e @wilkystyle está descrevendo, mas talvez as teclas l, -ue lvai ajudar depoismagit-log-buffer-file
dickmao

33

Abra seu magit-statusbuffer, digitando M-x magit-status(eu costumava ter esse limite C-. C-gporque é usado o tempo todo. Hoje em dia, eu uso o Spacemacs, então é <SPC> g s)

  1. Digite lpara obter a opção de visualização do registro
  2. Digite --para definir a opção "Limitar a arquivos" (costumava ser =f)
  3. Digite o caminho do arquivo para o qual deseja ver o histórico
  4. Digite lpara ver o log da filial atual

Se estiver usando o Spacemacs, você pode obter o histórico do arquivo atualmente visitado usando <SPC> g f h


1
Acho que a etapa 2 é agora --( Magit 20200112.2023, Git 2.20.1, Emacs 26.1, gnu/linux)
Liam

1
Legal, funciona também com arquivos que foram deletados em algum momento.
Günter Zöchbauer

11

Em seu *magit: <project>*buffer, use lpara entrar no modo de registro e pressione fpara ser solicitado um nome de arquivo.


3

Eu não sei um caminho. Eu simplesmente uso o M-x vc-print-logque parece realizar a mesma façanha. No entanto, não é uma forma integrada de magit.


2

Se o magit ( manual do usuário ) não tiver esse recurso, você pode dar uma olhada em outro modo Emacs e adicionar sua própria git-log-filefunção:

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

Ou apenas useC-x v l
phils

Estou recebendo a seguinte mensagem:Symbol’s function definition is void: git-marked-files
alper

1
@alp 7 anos depois, esse problema estaria melhor representado em sua própria pergunta, com a versão exata do SO, eclipse e plugin mágico.
VonC
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.