Liste todos os commits (em todos os ramos) para um determinado arquivo

94

Esta questão está intimamente relacionada a Listar todos os commits para um arquivo específico, porém é diferente. Eu quero descobrir quais commits, em todos os branches , modificaram um determinado arquivo.

Para torná-lo mais complexo, o arquivo fornecido pode ou não estar na árvore de trabalho.

Saurabh Nanda
fonte

Respostas:

54

Você pode usar o gitk

gitk --all <path to file> (you need to install gitk)

por exemplo

gitk --all -- /home/kit.ho/project/abc.txt

Kit Ho
fonte
1
Não sei por que minha resposta foi rejeitada, mas a sua não considera que a pergunta solicite especificamente o log em todas as ramificações. Você está apenas respondendo que o OP já está vinculado.
manojlds
2
Eu não era um downvoter, mas isso precisa de um --allou algo semelhante para atravessar mais história do que o ramo atual.
wjl
Por que os votos negativos? Isso funciona perfeitamente bem. Ambas as respostas estão corretas. Um funciona para o console de texto, o outro para a GUI gitk. Posso marcar ambos como corretos?
Saurabh Nanda de
@Saurabh Nanda: Marque aquele que você acha que é útil para você.
Kit Ho de
@saurabh - Esta resposta foi editada. Kit Ho - Mencione que você está editando. E faz parecer que ambas as respostas estavam originalmente corretas.
manojlds de
116

Experimente isto:

git log --all -- path
manojlds
fonte
8
Nb. você pode precisar de uma --full-historyopção, dependendo do que você deseja ver exatamente: consulte a seção sobre simplificação de histórico nas páginas de manual do git-log ou gitrevisions.
Jakub Narębski
Definitivamente, a resposta certa, supondo que você não queira usar uma GUI.
Matt Setter
47

Linha de comando

Eu recomendo fortemente adicionar a opção de gráfico com git log:

git log --graph --all -- <filename>

git log --graph --all - <filename>

Gui

Gitk é uma ferramenta bem antiga e nem sempre instalada, eu recomendo uma ferramenta gratuita diferente como, por exemplo, SourceTree:

SourceTree

DrumM
fonte
7
Como registrar um arquivo e mostrar seu gráfico de ramificação no SourceTree? Clique com o botão direito em um arquivo e selecione "Log Selecionado ..." não mostra o histórico em todos os ramos.
aleung