Como visualizar o histórico de arquivos no git?
-
21-09-2019 - |
Pergunta
Com a subversão, eu poderia usar o TortoisesVN para visualizar o histórico/log de um arquivo.
Como posso fazer isso com o Git?
Apenas procurando registro de histórico para um arquivo específico e, em seguida, a capacidade de comparar as diferentes versões.
Solução
Usar git log
para ver a história do compromisso. Cada confirmação tem um especificador de revisão associado que é uma chave de hash (por exemplo, 14b8d0982044b0c49f7a855e396206ee65c0e787
e b410ad4619d296f9d37f0db3d0ff5b9066838b39
). Para ver a diferença entre dois compromissos diferentes, use git diff
Com os primeiros caracteres dos especificadores de revisão de ambos os compromissos, assim:
# diff between commits 14b8... and b410...
git diff 14b8..b410
# only include diff of specified files
git diff 14b8..b410 path/to/file/a path/to/file/b
Se você deseja obter uma visão geral sobre todas as diferenças que aconteceram com comprometimento para se comprometer, use git log
ou git whatchanged
Com a opção Patch:
# include patch displays in the commit history
git log -p
git whatchanged -p
# only get history of those commits that touch specified paths
git log path/a path/b
git whatchanged path/c path/d
Outras dicas
Eu gosto de usar gitk name_of_file
Isso mostra uma boa lista das alterações que aconteceram com um arquivo em cada confirmação, em vez de mostrar as alterações em todos os arquivos. Torna mais fácil rastrear algo que aconteceu.
você também pode usar Tig Para um bom navegador de repositório Git baseado em Ncurses. Para ver a história de um arquivo:
tig path/to/file
Meu favorito é git log -p <filename>
, o que lhe dará um histórico de todos os compromissos do arquivo especificado, bem como dos diferenciais para cada confirmação.
Muitos navegadores de história do git, incluindo git log
(e 'git log --graph'), gitk (em tcl/tk, parte do git), qgit (em qt), tig (interface do modo de texto para git, usando ncurses), giggle (em gtk+), tartoisegit e git -Cheetah Suporte Path Limiting (por exemplo gitk path/to/file
).
Claro, se você quiser algo o mais próximo possível do Tortoisesvn, você pode usar Tortoisegit.
Tortoisegit também fornece um ferramenta de linha de comando para ver o histórico de um arquivo. Usando PowerShell:
C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt"
git log --all -- path/to/file
Deveria trabalhar