logo

Registro Git

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:

    Un hash di commit, che è un dato di checksum di 40 caratteri generato dall'algoritmo SHA (Secure Hash Algorithm). È un numero univoco.Impegna i metadati dell'autore: le informazioni sugli autori come il nome dell'autore e l'e-mail.Metadati della data di commit: è un timestamp della data per l'ora del commit.Conferma titolo/messaggio: è la panoramica del commit fornita nel messaggio di commit.

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:

Registro Git

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:

Registro Git 1

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:

Registro Git 2

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:

Registro Git 3

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:

Registro Git 4

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=&apos;yy-mm-dd&apos; 

Il comando precedente mostrerà tutti i commit effettuati dopo la data specificata. Considera l'output seguente:

Registro di Git 5

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=&apos;21 days ago&apos; 

Il comando precedente mostrerà i commit che sono stati effettuati 21 giorni fa. Considera l'output seguente:

Registro di Git 6

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=&apos;2019-11-01&apos; --before=&apos;2019-11-08 &apos; 

Il comando precedente mostrerà i commit effettuati tra le date. Considera l'output seguente:

Registro Git7

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=&apos;Author name&apos; 

Il comando precedente mostrerà tutti i commit effettuati dal dato autore. Considera l'output seguente:

Registro Git8

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=&apos;Stephen&apos; 

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=&apos;@gmail.com&apos; 

Il comando precedente mostrerà i commit per autori come indicato nel modello. Considera l'output seguente:

Registro Git 9

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=&apos; Commit message.&apos; 

Possiamo usare la forma breve del messaggio di commit invece del messaggio completo. Considera l'output seguente.

Registro Git 10

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.