Git log - Trovare i commit perduti
Quante volte Γ¨ successo di voler recuperare un commit ma non ricordarsi quando o chi lo ha effettuato? Git log viene in aiuto! Questo comando permette di ottenere una lista di commit filtrati secondo una determinata condizione.
La documentazione ufficiale Γ¨ completa ma estremamente prolissa, di seguito una lista di comandi comodi per la vita di tutti i giorni.
Commit con un determinato messaggio
git log --all --grep='foo'
Qualora il commit sia βdanglingβ quindi non connesso a nessun altro commit Γ¨ possibile cercare anche con il reflog
quindi utilizzare il comando:
git log -g --grep='foo'
Ricordo che lβargomento di grep accetta anche espressioni regolari.
Commit con un determinata aggiunta o rimozione
Qualora voglia cercare tutti i commit dove la parola foo Γ¨ stata aggiunta o rimossa (per essere precisi dove il numero di occorrenze della parola foo Γ¨ cambiata.
git log -G "foo"
Solo in un determinato file
Aggiungendo il nome del file alla fine posso filtrare solo per quello. Questo comando puΓ² essere utile qualora voglia ottenere tutti i commit che hanno modificato una determinata riga.
git log -G "foo" file.js
Commit dello stesso autore
git log --author="foo"
Estetica
I risultati di git log possono essere mostrati in vari modi diversi in base alle esigenze.
Flag | Significato |
---|---|
--oneline | Mostra solo lβhash e il messaggio di commit |
--decorate | Mostra eventuali tag e branch |
--stat | Mostra il numero di righe aggiunte e rimosse per ogni commit |
--graph | Mostra un grafico ASCII visualizzante la struttura dei branch |
Per approfondire
Per approfondire consiglio il seguente libro, in italiano di Ferdinando Santacroce: Git: Guida per imparare a gestire, distribuire e versionare codice.