Elenca tutti i commit (su tutti i rami) per un dato file


94

Questa domanda è strettamente correlata a Elenca tutti i commit per un file specifico, tuttavia è diversa. Voglio scoprire quali commit, in tutti i rami , hanno modificato un dato file.

Per renderlo più complesso, il file specificato può essere o meno nell'albero di lavoro.

Risposte:


54

Puoi usare gitk

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

per esempio

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


1
Non so perché la mia risposta sia stata sottovalutata, ma la tua non considera che la domanda richieda specificamente il log in tutti i rami. Stai solo dando una risposta a cui l'OP si è già collegato.
manojlds

2
Non ero un downvoter, ma questo ha bisogno di --allqualcosa di simile per andare attraverso più storia rispetto al ramo attuale.
wjl

Perché i voti negativi? Funziona perfettamente bene. Entrambe le risposte sono corrette. Uno funziona per la console di testo, l'altro per la GUI di gitk. Posso contrassegnare entrambi come corretti?
Saurabh Nanda,

@Saurabh Nanda: Segna quello che ritieni utile per te.
Kit Ho

@saurabh - Questa risposta è stata modificata. Kit Ho - Menziona che stai modificando. E fa sembrare che entrambe le risposte fossero originariamente corrette.
manojlds

116

Prova questo:

git log --all -- path

8
Nb. potresti aver bisogno di --full-historyun'opzione, a seconda di cosa vuoi esattamente vedere: vedi la sezione sulla semplificazione della cronologia nelle manpage git-log o gitrevisions.
Jakub Narębski

Sicuramente la risposta giusta, supponendo che tu non voglia utilizzare una GUI.
Matt Setter

47

Riga di comando

Consiglio vivamente di aggiungere l'opzione del grafico con git log:

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

git log --graph --all - <nomefile>

Gui

Gitk è uno strumento piuttosto vecchio e non sempre installato, consiglio uno strumento gratuito diverso come ad esempio SourceTree:

SourceTree


7
Come registrare un file e mostrare il suo grafico di ramo in SourceTree? Fare clic con il tasto destro su un file e selezionare "Registro selezionato ..." non mostra la cronologia su tutti i rami.
Aleung
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.