2016-02-13 7 views
9

ho voluto per visualizzare tutte le commit di un file dall'inizio alla rovescia mi sono imbattutoPerché git accede con --follow e --reverse restituiscono solo l'ultimo commit?

git log --reverse [file] 

e ha funzionato come previsto. ma per un file rinominato mostra solo dal commit in cui è stato rinominato, quindi ho aggiunto - segui.

git log --reverse --follow [file] 

ma ora mostra solo l'ultimo commit eseguito per quel file.

Come posso combinare entrambi per ottenere il risultato desiderato.

risposta

6

Questo sembra essere known bug in git. L'unico lavoro intorno che posso vedere è se si sa cosa il file è stato nominato prima, passarlo insieme al file corrente al comando, vale a dire

git log --reverse --follow -- oldfilename currentfilename 

Edit: il seguente farà ciò che si vuole:

git log --name-only --pretty="format:" --follow <filename> | sort -u | xargs git log --reverse -- 
+0

E se il file è stato rinominato più di una volta? – Shubanker

+0

Come posso usare '-p' per visualizzare anche le modifiche alle viste? – Shubanker

+0

@Shubanker, puoi aggiungere tutte le opzioni che vuoi alla fine del comando, prima dell'ultimo '--'. –

Problemi correlati