# Git log: elencare e ricercare i commit di un progetto

Git log vi dà la possibilità di visualizzare tutti i commit di un progetto e di filtrarli. A seconda delle istruzioni da voi specificate potete ottenere risultati migliori.

## Che cos’è git log?

Il comando git commit è tra i principali di ogni [tutorial su Git](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/tutorial-git/ "Tutorial Git") e serve in poche parole a scattare delle istantanee dei progressi fatti e a far sì che le modifiche vengano salvate correttamente. Soprattutto nel caso di progetti di grandi dimensioni, a cui spesso lavorano grandi team, si ricorre solitamente a molteplici commit, rendendo la cronologia delle versioni alquanto indecifrabile. Poiché il [comando Git](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-git/ "Comandi Git") git log vi consente di creare un elenco dei commit, di filtrarli e di ricercarli in base alle modifiche applicate, rappresenta uno strumento chiave per lavorare con il sistema di controllo delle versioni. Mentre git status serve a esaminare la directory di lavoro, git log si concentra solo sui commit eseguiti.

## Sintassi di git log

La sintassi di base di git log è molto semplice. Senza ulteriori indicazioni il comando elenca i commit del vostro progetto in ordine cronologico inverso. Potete quindi scorrere uno alla volta dai commit più recenti a quelli più vecchi. Tra le altre informazioni, sono anche elencati la data, il nome e l’indirizzo e-mail del rispettivo utente.

```none
git log
```

Questa funzionalità è specialmente utile per ottenere un riepilogo generale. Tuttavia, vale sempre la pena di perfezionare i criteri di ricerca per ottenere risultati migliori, specialmente quando si tratta di progetti di grandi dimensioni. A questo scopo Git offre numerose possibilità. Abbiamo raccolte per voi in una tabella da consultare quelle più utili, in aggiunta alla pratica guida [“Git Cheat Sheet” scaricabile in PDF](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/git-cheat-sheet/).

## I principali utilizzi di git log

<table>
  <thead>
    <tr>
      <th>git log</th>
      <th>Con il comando standard visualizzate un elenco di tutti i commit in ordine cronologico inverso.</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>git log -p</td>
      <td>Mappate dettagliatamente tutte le modifiche.</td>
    </tr>
    <tr>
      <td>git log --stat</td>
      <td>Visualizzate le statistiche delle modifiche chiaramente elencate.</td>
    </tr>
    <tr>
      <td>git log --graph --decorate --oneline</td>
      <td>Illustrate le modifiche sotto forma di grafico.</td>
    </tr>
    <tr>
      <td>git log -n &lt;numero&gt;</td>
      <td>Con questo comando riducete il numero di commit visualizzati.</td>
    </tr>
    <tr>
      <td>git log --oneline</td>
      <td>Riassumete ogni commit in un’unica riga così da avere una migliore visione d’insieme.</td>
    </tr>
    <tr>
      <td>git log --author="nome dell’autore/autrice"</td>
      <td>Visualizzate solo i commit di un determinato autore o autrice.</td>
    </tr>
    <tr>
      <td>git log --grep="messaggio"</td>
      <td>Filtrate i commit in base alla spiegazione corrispondente.</td>
    </tr>
    <tr>
      <td>git log &lt;since&gt;…&lt;until&gt;</td>
      <td>Visualizzate soltanto i commit eseguiti in un determinato intervallo di tempo.</td>
    </tr>
    <tr>
      <td>git log &lt;nomedelfile&gt;</td>
      <td>Visualizzate soltanto i commit che contengono un determinato file.</td>
    </tr>
    <tr>
      <td>git log --pretty</td>
      <td>Cambiate il formato dell’output secondo le vostre indicazioni.</td>
    </tr>
  </tbody>
</table>

## Combinare i filtri

Se volete, avete anche la possibilità di combinare diverse variabili ed eseguire così una ricerca ancora più precisa. Nel codice che segue vedete un semplice esempio di un elenco specifico con git log. Con il seguente comando potete visualizzare in dettaglio solamente i commit dell’autore “Mario Rossi” presenti nel file “esempio”.

```none
git log --author="Mario Rossi" -p esempio.py
```

Per fare un esempio più specifico mettiamo che solo i commit del già citato utente e quelli di una collega siano da considerare per il periodo compreso tra settembre e ottobre 2021. Inoltre, i commit dovranno presentare solo modifiche testuali e non dovranno essere fusioni (merges). In questo caso il codice sarà il seguente:

```none
git log --author="Mario Rossi\|Marina Bianchi" --since="2021-09-01" \ --before=2021-10-31" –no-merges --t esempio.py
```

## Formattare git log con pretty

Con i formati pretty potete impostare la modalità di visualizzazione di git log. I formati più comuni sono i seguenti:

- oneline: mostra tutte le informazioni in una riga.
- short: elenca solamente i commit, l’autore o l’autrice e il titolo.
- medium: elenca i commit, l’autore o l’autrice, la data, il titolo e la descrizione.
- full: aggiunge ai precedenti anche il committer.
- fuller: elenca in aggiunta la data dell’autore o dell’autrice e del committer.
- email: mostra le informazioni nel formato e-mail.
- raw: elenca i commit esattamente come sono stati eseguiti.
- format: permette di eseguire una formattazione personalizzata; per esempio riportando le informazioni rilevanti all’interno di una frase, includendo paragrafi o impostando un ordine di lettura specifico.

## Git log e git diff

Git log è uno strumento fondamentale per mantenere una visione d’insieme del vostro progetto e per filtrare determinate informazioni. Il comando viene spesso utilizzato congiuntamente a [git diff](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/git-diff/ "Git diff") permettendo **di elencare le modifiche tra due commit**. Questo non solo vi permette di vedere chiaramente come il progetto si sia sviluppato nel tempo e quali membri del team stanno lavorando a un preciso compito, ma è anche utile per identificare eventuali fonti di errore.

---

### Consiglio

Flusso di lavoro ottimizzato, configurazione rapida e massima scalabilità! Con [Deploy Now](https://www.ionos.it/hosting/deploy-now "Deploy Now: progetta e distribuisci attraverso GitHub - IONOS") di IONOS distribuite i vostri siti web e le vostre applicazioni direttamente con GitHub. Approfittate di una prova gratuita e di tariffe vantaggiose.

---


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/git-log/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/git-log/) for AI/LLM consumption.