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.

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


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

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


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
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.