Se vuoi solo trovare il commit più recente, allora non vuoi git-log
, vuoi git-rev-list
, che elenca gli oggetti di commit cambiando quel file, in quel percorso di commit, iniziando con quello più recente (in ordine cronologico). In poche parole:
git rev-list -1 <commit> <filename>
Per git-rev-list
nel tuo caso, è sufficiente fornire:
- Il numero di commit da includere, o -1 solo per il più recente,
- Il ramo (o commettono id) per iniziare la ricerca indietro da, HEAD se sei già su di esso, o --all se si desidera che tutti i commit noti e
- Il percorso relativo al tuo file.
Questo restituisce solo l'ID commit più recente nel ramo corrente per modificare quel file, ad esempio: 215095e2e338525be0baeeebdf66bfbb304e7270
Per un esempio più complesso, è possibile utilizzare nomi di tag e persino riferimenti remoti e includere nomi di percorso relativi con caratteri jolly, ad esempio:
git rev-list origin/user/bob/testbranch -1 src/bfiles/*.txt
... Che ti direbbe quale è stata la modifica più recente alla corrispondenza con caratteri jolly nella storia di quel ramo. Le opzioni per rev-list sono estreme, è uno dei comandi idraulici più importanti, quindi puoi includere o escludere con qualsiasi criterio tu possa immaginare.
Naturalmente, consultare la pagina di manuale di git-rev-list (1) .
--all
opzione.