Guide Git
Visualizzatore e visualizzatore dell'albero Git: come vedere la cronologia Git come un grafico
Tre modi per vedere la tua cronologia Git come un albero: il grafico del log git nel tuo terminale, gitk e un grafico di commit della GUI cliccabile. Quindi impara a leggere corsie e fusioni e trova il commit di cui hai bisogno.

Un visualizzatore dell'albero Git disegna la cronologia dei commit come un grafico: ogni punto è un commit, ogni linea colorata è un ramo e due linee che si incontrano in un punto rappresentano una fusione. Git stesso ne ha due: esegui git log --graph --oneline --all --decorate in qualsiasi terminale o apri gitk --all. Quando desideri una cronologia, puoi fare clic, filtrare ed effettuare ricerche, utilizzare un grafico di commit della GUI come GitTree, un client Git desktop per macOS, Windows e Linux.
Questa guida li esamina tutti e tre, quindi mostra come leggere le corsie e unire i commit e come trovare un commit tra migliaia. Una breve informazione: l'ha scritta il creatore di GitTree. Le sezioni della riga di comando e di gitk non necessitano altro che di Git.
Grafico del log di Git: la vista ad albero già integrata in Git
La visualizzazione ad albero Git più veloce è un comando. Funziona in qualsiasi repository, su SSH e su ogni sistema su cui Git viene eseguito:
git log --graph --oneline --all --decorate--graphdisegna un grafico testuale dei rami e li unisce a sinistra di ciascun commit. Inoltre ordina i commit in modo che nessun genitore appaia prima dei suoi figli.--onelinestampa una riga per commit: l'hash breve e la prima riga del messaggio.--allmostra ogni ramo, ramo remoto e tag piùHEAD, non solo il ramo in cui ti trovi. Senza di esso, i rami che non vengono uniti nel ramo corrente rimangono nascosti.--decoratestampa i nomi dei rami e dei tag accanto ai commit a cui puntano. Git lo fa già quando l'output arriva a un terminale, quindi il flag è importante soprattutto quando si collega l'output o si cambialog.decorate.
L'output è simile al seguente. Il commit più recente è in alto, * contrassegna un commit e i caratteri |, \ e / sono le linee di diramazione:
* a1b2c3d (HEAD -> main) Merge branch 'feature/search'
|\
| * 9f8e7d6 (feature/search) Highlight matched terms
| * 5c4b3a2 Add search index
* | 1a2b3c4 Fix typo in README
|/
* 0f9e8d7 (tag: v1.0.0) Release 1.0.0Leggilo dal basso verso l'alto: v1.0.0 è stato rilasciato, poi due linee di lavoro si sono svolte fianco a fianco (una correzione README su main, una funzione di ricerca sul proprio ramo) e la fusione in alto le ha unite di nuovo.
Salvalo come alias breve
Nessuno vuole digitare quattro flag ogni volta. Un alias Git trasforma l'intero comando in git tree:
git config --global alias.tree "log --graph --oneline --all --decorate"
git treeQuattro varianti che vale la pena conoscere
git log --graph --oneline --first-parent main
git log --graph --oneline --all --simplify-by-decoration
git log --graph --oneline main..feature/search
git log --graph --pretty=format:"%h %an %ar %s"--first-parentsegue solo il primo genitore di ciascuna unione, quindimainsi legge come un elenco diretto di ciò che è arrivato su di esso, una unione per funzione.--simplify-by-decorationmantiene solo i commit a cui punta un ramo o un tag: una struttura del tuo albero dei rami Git senza i commit in mezzo.main..feature/searchmostra i commit sufeature/searchche non sono ancora inmain, che è ciò che porterebbe un'unione.--pretty=formataggiunge l'autore e una relativa data (“3 giorni fa”) ad ogni riga.
gitk: il visualizzatore della cronologia Git fornito con Git
gitk è il browser del repository grafico di Git, scritto in Tcl/Tk. Disegna il grafico dei commit, mostra i dettagli di ciascun commit ed elenca i file in ciascuna revisione. Avvialo dall'interno di un repository:
gitk --allgitk accetta gli stessi limiti di git log, quindi puoi restringerlo a un intervallo di tempo o a una cartella. Si aprono solo le ultime due settimane di modifiche in src/:
gitk --since="2 weeks ago" -- src/Se la tua shell risponde gitk: command not found, la tua installazione Git lo ha escluso. Su Debian e Ubuntu, gitk è un pacchetto separato:
sudo apt install gitkgitk è costruito per leggere la storia. Ha alcune azioni di commit nel menu di scelta rapida, ma l'esecuzione dei commit appartiene allo strumento gemello, git gui, che secondo la sua stessa documentazione non mostra la cronologia del progetto. Per il lavoro quotidiano si finisce per passare dalle due finestre al terminale.
Un grafico di commit della GUI: una vista ad albero Git su cui puoi fare clic
Un client Git desktop disegna lo stesso albero, ma ogni riga è attiva. Seleziona un commit per vederne il messaggio, i genitori e i file modificati. Fare clic con il pulsante destro del mouse per creare un ramo, effettuare una selezione o ripristinare. Fare doppio clic sull'etichetta di un ramo per verificarla oppure trascinare un ramo su un altro per unirlo o riorganizzarlo. In GitTree il grafico dei commit è la finestra principale anziché un visualizzatore separato.

Ecco cosa disegna GitTree sul grafico, oltre ai punti e alle linee:
- Corsie codificate a colori per ogni ramo, con etichette locali, remote e tag sui commit a cui puntano.
- Una riga
// WIPsopra il commit più recente per le modifiche di cui non hai ancora effettuato il commit e ogni somma disegnata sul grafico in corrispondenza del commit da cui è stata effettuata. - Avatar dell'autore e badge di firma sui commit firmati.
- Pull request e chip CI-check sui suggerimenti del ramo una volta connesso GitHub, GitLab, Bitbucket o Azure DevOps.
- Scorrimento fluido oltre 100.000 commit (misurato su Linux), in modo che le cronologie di grandi dimensioni rimangano utilizzabili.
GitTree esegue Git già installato sul tuo computer (versione 2.39 o successiva), quindi ogni pulsante fa quello che farebbe il comando corrispondente. Se stai ancora decidendo tra i due stili, il nostro confronto tra l'uso di una GUI Git e la riga di comando copre i compromessi.
Come leggere un grafico dei commit Git: corsie, fork e merge
Sia che il grafico sia ASCII in un terminale o colorato in una finestra, si applicano le stesse regole:
| Quello che vedi | Cosa significa |
|---|---|
Un punto (* nel terminale) | Un impegno. I commit più recenti sono superiori a quelli più vecchi. |
| Una linea verticale, o corsia | Una linea di sviluppo: commit che si susseguono su un ramo. |
| Una linea che si divide | Qualcuno ha avviato un ramo da quel commit e il lavoro è continuato in due posti. |
| Due linee che si incontrano in un punto | Un commit di unione. Ha due genitori, uno per ciascuna linea. |
Un'etichetta come main, origin/main o v1.0.0 | Un ramo locale, un ramo remoto o un tag che punta a quel commit. HEAD -> segna ciò che hai controllato. |
| Una linea retta, senza biforcazioni | Cronologia lineare, solitamente derivante da unioni veloci o ribasamento prima della fusione. |
Lettura dei commit di unione
Un commit di unione ha due genitori. Il primo genitore è il ramo su cui ti trovavi al momento della fusione, solitamente main. Il secondo è il ramo in cui ti sei unito. Ecco perché --first-parent fornisce un riepilogo così chiaro di main: salta l'interno di ogni ramo di funzionalità. In GitTree, seleziona un'unione e il pannello dei dettagli elenca entrambi gli hash principali.

Quando le corsie si incrociano e il quadro si fa movimentato
I rami longevi che si uniscono avanti e indietro fanno incrociare le corsie. Niente è rotto; sullo schermo c'è semplicemente più del necessario. Taglialo fino ai rami che ti stanno a cuore. Nel terminale, nominali invece di utilizzare --all, ad esempio git log --graph --oneline main feature/search. In GitTree, fai clic con il pulsante destro del mouse sull'etichetta di un ramo e scegli Nascondi nel grafico, Solo nel grafico per mostrare solo quel ramo o Fissa a sinistra per mantenerne la corsia nella prima colonna.
Cerca nella cronologia Git: trova un commit tra migliaia
Vedere l'albero è metà del lavoro. L'altra metà è trovare l'unico commit che ha cambiato l'elemento di cui stai eseguendo il debug.
Cerca dalla riga di comando
git log --oneline --author="Jane"
git log --oneline --since="2 weeks ago" -- src/
git log --oneline -S"parse_header"
git log --oneline -G"fn [a-z_]+_header"--authormantiene i commit il cui nome dell'autore o indirizzo email corrisponde al modello.--sincee--untillimitano per data e-- src/mantiene solo i commit che hanno toccato quel percorso.-S, il "piccone", trova i commit che hanno aggiunto o rimosso una stringa. È il modo più veloce per sapere quando una funzione è apparsa o scomparsa.-Gtrova i commit le cui righe aggiunte o rimosse corrispondono a un'espressione regolare. Attenersi alle espressioni tra parentesi POSIX come[a-z_]o[[:alnum:]]: scorciatoie come\wnon funzionano con ogni build Git.
Cerca in GitTree con autore:, file: e modifica:
La ricerca sopra il grafico (Cerca cronologia caricata) corrisponde a un messaggio, autore, hash, ramo o tag. Per una ricerca più approfondita, apri la tavolozza dei comandi con Ctrl+Maiusc+P (⌘+Maiusc+P su Mac), digita #, quindi la tua query. Le parole senza prefisso cercano i messaggi di commit e questi prefissi restringono il risultato:
author:janeoauthor:"Jane Doe": il nome o l'e-mail dell'autore contiene quel testo.file:src/main.rs: il commit tocca quel percorso. Ripetilo per abbinare diversi percorsi.change:parse_header: il commit aggiunge o rimuove quella stringa, comegit log -S.change:/fn [a-z_]+_header/: una riga modificata corrisponde all'espressione regolare, comegit log -G.
Combinali in un'unica query: #fix crash author:jane file:src/ trova i commit di Jane che menzionano "correzione arresto anomalo" e tocca src/. Per ridurre il grafico stesso anziché elencare i risultati, utilizza Filtra grafico… per mantenere un solo autore, un intervallo di date o un percorso.

Visualizza il tuo albero Git in GitTree
Installa GitTree
Scarica GitTree per macOS, Windows o Linux e installalo. Assicurati che sia installato Git 2.39 o una versione più recente (su Windows, ciò significa Git for Windows); Ubuntu 22.04 fornisce un Git più vecchio, quindi aggiorna Git su Ubuntu prima.
Accedi e inizia
All'apertura di GitTree, accedi con un account GitTree, creato su gittree.app con la tua email o con un provider Git: il grafico e ogni altra funzionalità Git sono quindi nel piano Free. Le integrazioni di hosting (GitHub, GitLab, Bitbucket e Azure DevOps, telecomandi privati inclusi) e Nour, l'assistente AI, vengono forniti con GitTree Pro, che inizia con una prova gratuita; il piano gratuito continua dopo.
Apri o clona un repository
Nella pagina iniziale, scegli Apri e scegli una cartella che contiene un repository Git oppure scegli Clona per copiarne uno da un URL su HTTPS o SSH.
Leggi il grafico
Il grafico dei commit riempie la finestra principale: commit più recenti in alto, una corsia colorata per ramo, etichette per rami e tag. Fare clic su qualsiasi commit per visualizzarne il messaggio, i genitori e i file modificati.
Concentrati e cerca
Fai clic con il pulsante destro del mouse sull'etichetta di un ramo per nasconderlo, isolarlo o fissarlo, utilizza Filtra grafico… per un autore, un intervallo di date o un percorso e digita
#nella tavolozza dei comandi per cercare conauthor:,file:ochange:.
Quale visualizzatore di alberi Git dovresti usare?
| Opzione | Meglio per | Di cosa hai bisogno |
|---|---|---|
git log --graph | Sguardi rapidi, sessioni SSH, script e log CI | Solo Git |
| scemo | Un grafico cliccabile dalla suite Git stessa | Git (su Debian e Ubuntu, il pacchetto gitk separato) |
| GitTree | Leggere, cercare e modificare la cronologia in un'unica finestra | GitTree (piano gratuito per ogni funzionalità Git, con un account GitTree; Nour con Pro) e Git 2.39 o successivo |
La maggior parte degli sviluppatori finisce per usarne più di uno: il terminale per una rapida occhiata, una GUI per scavare nella cronologia e per modifiche più facili da vedere, come un rebase interattivo in una GUI. Se non hai esperienza con branch e commit, inizia con la nostra Guida a Git per principianti, poi esercitati a leggere la cronologia nella lezione gratuita Leggi commit, HEAD e intervalli di revisione e scopri cos'è un HEAD distaccato in Keep dependent work. Se desideri confrontare le app desktop, consulta il nostro riepilogo dei migliori client GUI Git.
GitTree ha un piano gratuito che copre tutte le funzionalità Git, repository privati inclusi, e Nour, l'assistente AI, viene fornito con GitTree Pro. Scopri tutto ciò che il grafico di commit e il resto dell'app possono fare o leggi le note di installazione per Mac, Windows e Linux.
Domande frequenti
Cos'è un visualizzatore di alberi Git?
Un visualizzatore di alberi Git è uno strumento che disegna la cronologia dei commit di un repository come un grafico anziché un elenco semplice. Ogni commit è un punto, ogni ramo è una linea e le fusioni vengono visualizzate dove le linee si uniscono. Git ne include due: il comando git log --graph per il terminale e la finestra gitk. I client Git desktop come GitTree aggiungono un grafico cliccabile e ricercabile.
Come posso vedere l'albero dei rami Git nel terminale?
Esegui git log --graph --oneline --all --decorate all'interno del repository. --graph disegna le linee di diramazione, --oneline mantiene ciascun commit su una riga, --all include ogni ramo e tag anziché solo il ramo corrente e --decorate stampa i nomi di ramo e tag. Salvalo come alias con git config --global alias.tree "log --graph --oneline --all --decorate" e da quel momento in poi digita git tree.
Perché git log non mostra tutti i miei rami?
Per impostazione predefinita, git log elenca solo i commit raggiungibili da HEAD, il commit che hai estratto. I rami che non sono uniti nel ramo corrente vengono esclusi. Aggiungi --all per includere ogni ramo locale, ramo remoto e tag oppure dai un nome ai rami che desideri, ad esempio git log --graph main feature/search.
gitk è installato con Git?
gitk fa parte della suite Git, quindi molte installazioni lo includono. Alcune distribuzioni Linux lo impacchettano separatamente: su Debian e Ubuntu, installalo con sudo apt install gitk. Avvialo dall'interno di un repository con gitk --all per vedere ogni ramo. Accetta gli stessi limiti di data e percorso di git log, come --since o -- src/.
Come trovo il commit che ha aggiunto una riga di codice specifica?
Usa la ricerca del piccone. git log -S"text" elenca i commit che hanno modificato quante volte appare quella stringa esatta, che mostra quando è stata aggiunta e rimossa. git log -G"regex" corrisponde alle righe aggiunte o rimosse rispetto a un'espressione regolare. In GitTree, apri la tavolozza dei comandi, digita # e utilizza change:text o change:/regex/ per le stesse ricerche.
GitTree è gratuito e su quali sistemi funziona?
GitTree ha un piano gratuito che copre tutte le funzionalità di Git, per privati e organizzazioni, repository privati e uso commerciale inclusi, senza limiti di tempo e senza carta di credito. Nour, l'assistente AI, viene fornito con GitTree Pro; la pagina dei prezzi confronta i due piani. Funziona su macOS 13 o successivo, Windows 10 e 11 a 64 bit e Linux a 64 bit (Ubuntu 22.04 o successivo, Debian 12 o successivo). Ti chiede di accedere con un account GitTree e utilizza Git già installato sul tuo computer, versione 2.39 o successiva; Per le integrazioni di hosting è richiesto GitTree Pro.
Un visualizzatore di grafici Git può gestire repository molto grandi?
Il grafico terminale gestisce qualsiasi dimensione ma diventa difficile da leggere con molti rami; limitalo con i nomi dei rami, --since o un percorso. Il grafico dei commit di GitTree scorre agevolmente oltre i 100.000 commit nelle misurazioni su Linux e puoi nascondere, isolare o bloccare rami e filtrare per autore, data o percorso per mantenere leggibile un'ampia cronologia.
Fonti
Le affermazioni su altri prodotti sono state confrontate con le rispettive pagine ufficiali in data 22 ottobre 2026. Cambiano prezzi e caratteristiche; le pagine dei venditori sono la fonte della verità.