Il vantaggio di un sistema di controllo della versione è che registra le modifiche. Questi record ci consentono di recuperare dati come commit, individuare bug, aggiornamenti. Ma tutta questa storia sarà inutile se non riusciamo a navigarla. A questo punto abbiamo bisogno del comando git log.
Git log è uno strumento di utilità per rivedere e leggere la cronologia di tutto ciò che accade a un repository. È possibile utilizzare più opzioni con un log git per rendere la cronologia più specifica.
Generalmente, il log git è un registro dei commit. Un log git contiene i seguenti dati:
Come uscire dal comando git log?
Potrebbe verificarsi una situazione in cui esegui il comando git log e rimani bloccato lì. Vuoi digitare o tornare a bash, ma non puoi. Quando fai clic su accedere chiave, ti porterà al comando precedente fino al flag di fine.
La soluzione a questo problema è premere IL q (Q per uscire) . Ti farà uscire dalla situazione e ti riporterà alla riga di comando. Ora puoi eseguire qualsiasi comando.
Registro Git di base
Il comando Git log è uno dei comandi più comuni di git. È il comando più utile per Git. Ogni volta che devi controllare la cronologia, devi usare il comando git log. Il comando git log di base mostrerà i commit più recenti e lo stato dell'head. Verrà utilizzato come:
$ git log
Il comando precedente mostrerà gli ultimi commit. Considera l'output seguente:
Il comando precedente elenca tutti i commit recenti. Ogni commit contiene un sha-id univoco, generato dall'algoritmo SHA. Include anche la data, l'ora, l'autore e alcuni dettagli aggiuntivi.
Possiamo eseguire alcune azioni come scorrere, saltare, muoverci e uscire dalla riga di comando. Per scorrere sulla riga di comando premere k per spostarsi verso l'alto, j per spostarsi verso il basso, la barra spaziatrice per scorrere verso il basso di una pagina intera per scorrere verso l'alto di una pagina e q per uscire dalla riga di comando.
<Git Log Oneline
L'opzione oneline viene utilizzata per visualizzare l'output come un commit per riga. Mostra anche l'output in breve come i primi sette caratteri del commit SHA e il messaggio di commit.
Verrà utilizzato come segue:
$ git log --oneline
Quindi, di solito possiamo dire che il flag --oneline fa sì che venga visualizzato il log di git:
- un commit per riga
- i primi sette caratteri dello SHA
- il messaggio di commit
Considera l'output seguente:
Come possiamo vedere più precisamente dall'output sopra, ogni commit viene fornito solo in una riga con un numero sha di sette cifre e un messaggio di commit.
Statistiche del registro Git
Il comando log visualizza i file che sono stati modificati. Mostra inoltre il numero di righe e una riga di riepilogo del totale dei record che sono stati aggiornati.
In generale, possiamo dire che l'opzione stat viene utilizzata per visualizzare
Algoritmo kmp
- i file modificati,
- Il numero di righe che sono state aggiunte o rimosse
- È stata modificata una riga di riepilogo del numero totale di record
- Le righe che sono state aggiunte o rimosse.
Verrà utilizzato come segue:
$ git log --stat
Il comando precedente visualizzerà i file che sono stati modificati. Considera l'output seguente:
Dall'output precedente, possiamo vedere che tutti i commit elencati sono modifiche nel repository.
Git log P o Patch
Il comando git log patch visualizza i file che sono stati modificati. Mostra anche la posizione delle righe aggiunte, rimosse e aggiornate.
Verrà utilizzato come:
$ git log --patch
O
$ git log -p
In generale, possiamo dire che il flag --patch viene utilizzato per visualizzare:
- File modificati
- La posizione delle linee aggiunte o rimosse
- Modifiche specifiche che sono state apportate.
Considera l'output seguente:
L'output sopra mostra i file modificati con la posizione delle linee che sono state aggiunte o rimosse.
Grafico del registro Git
Il comando Git log consente di visualizzare il registro git come grafico. Per elencare i commit sotto forma di grafico, esegui il comando git log con l'opzione --graph. Verrà eseguito come segue:
$ git log --graph
Per rendere l'output più specifico, puoi combinare questo comando con l'opzione --oneline. Funzionerà come segue:
$ git log --graph --oneline
Filtraggio della cronologia dei commit
Possiamo filtrare l'output in base alle nostre esigenze. È una caratteristica unica di Git. Possiamo applicare molti filtri come importo, data, autore e altro sull'output. Ogni filtro ha le sue specifiche. Possono essere utilizzati per implementare alcune operazioni di navigazione sull'output.
Comprendiamo ciascuno di questi filtri in dettaglio.
Per importo:
Possiamo limitare il numero di commit di output utilizzando il comando git log. È il comando più specifico. Questo comando rimuoverà la complessità se sei interessato a meno commit.
Java fa mentre l'esempio
Per limitare l'output del log git, inclusa l'opzione -. Se vogliamo solo gli ultimi tre commit, allora possiamo passare l'argomento -3 nel comando git log. Considera l'output seguente:
Come possiamo vedere dall'output sopra, possiamo limitare l'output di git log.
Per data e ora:
Possiamo filtrare l'output per data e ora. Dobbiamo passare --Dopo O -Prima argomento per specificare la data. Entrambi gli argomenti accettano una varietà di formati di data. Verrà eseguito come segue:
$ git log --after='yy-mm-dd'
Il comando precedente mostrerà tutti i commit effettuati dopo la data specificata. Considera l'output seguente:
Il comando precedente elenca tutti i commit dopo '2019-11-01'.
Possiamo anche passare la dichiarazione di riferimento applicabile come 'ieri', '1 settimana fa', '21 giorni fa' e altro. Verrà eseguito come:
git log --after='21 days ago'
Il comando precedente mostrerà i commit che sono stati effettuati 21 giorni fa. Considera l'output seguente:
Possiamo anche tenere traccia dei commit tra due date. Per tenere traccia dei commit creati tra due date, passare un riferimento all'istruzione --Prima E --Dopo l'appuntamento. Supponiamo di voler tenere traccia dei commit tra '2019-11-01' e '2019-11-08'. Eseguiremo il comando come segue:
$ git log --after='2019-11-01' --before='2019-11-08 '
Il comando precedente mostrerà i commit effettuati tra le date. Considera l'output seguente:
L'output sopra mostra i commit tra il periodo specificato. Possiamo usare --since e --until invece di --after e --before. Perché sono rispettivamente sinonimi.
Per autore:
Possiamo filtrare i commit per un particolare utente. Supponiamo di voler elencare i commit effettuati solo da un particolare membro del team. Possiamo usare il flag -author per filtrare i commit in base al nome dell'autore. Questo comando accetta un'espressione regolare e restituisce l'elenco dei commit effettuati dagli autori che corrispondono a quel modello. Puoi utilizzare il nome esatto invece del modello. Questo comando verrà eseguito come segue:
elenca Java nell'array
$ git log --author='Author name'
Il comando precedente mostrerà tutti i commit effettuati dal dato autore. Considera l'output seguente:
Dall'output sopra, possiamo vedere che tutti i commit sono stati eseguiti dall'autore Sono Dwivedi1 sono elencati.
Possiamo usare una stringa invece di un'espressione regolare o di un nome esatto. Considera la seguente affermazione:
$ git log --author='Stephen'
L'istruzione precedente mostrerà tutti i commit il cui autore include il nome Stephen. Non è necessario che il nome dell'autore corrisponda esattamente; ha solo la frase specificata.
Come sappiamo, l'e-mail dell'autore è coinvolta anche con il nome dell'autore, quindi possiamo utilizzare l'e-mail dell'autore come modello o ricerca esatta. Supponiamo di voler tenere traccia dei commit degli autori il cui servizio di posta elettronica è Google. Per fare ciò, possiamo utilizzare i caratteri jolly come '@gmail.com'. Considera la seguente affermazione:
$ git log -author='@gmail.com'
Il comando precedente mostrerà i commit per autori come indicato nel modello. Considera l'output seguente:
Per messaggio di commit:
Per filtrare i commit in base al messaggio di commit. Possiamo usare l'opzione grep e funzionerà come opzione dell'autore.
Verrà eseguito come segue:
$ git log --grep=' Commit message.'
Possiamo usare la forma breve del messaggio di commit invece del messaggio completo. Considera l'output seguente.
L'output precedente mostra tutti i commit che contengono la parola commit nel messaggio di commit.
Sono disponibili molte altre opzioni di filtro, ad esempio possiamo filtrare per nome file, contenuto e altro.