Vai al contenuto
GitTree

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.

Scritto da KodmoraAggiornato 13 minuti di lettura
GitTree grafico dei commit con corsie dei rami codificate a colori, etichette dei rami e dei tag, la barra laterale di riferimento e il pannello dei dettagli del commit

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
  • --graph disegna 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.
  • --oneline stampa una riga per commit: l'hash breve e la prima riga del messaggio.
  • --all mostra 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.
  • --decorate stampa 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 cambia log.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.0

Leggilo 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 tree

Quattro 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"
  1. --first-parent segue solo il primo genitore di ciascuna unione, quindi main si legge come un elenco diretto di ciò che è arrivato su di esso, una unione per funzione.
  2. --simplify-by-decoration mantiene solo i commit a cui punta un ramo o un tag: una struttura del tuo albero dei rami Git senza i commit in mezzo.
  3. main..feature/search mostra i commit su feature/search che non sono ancora in main, che è ciò che porterebbe un'unione.
  4. --pretty=format aggiunge 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 --all

gitk 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 gitk

gitk è 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.

Il grafico dei commit di GitTree: ogni ramo ha la propria corsia colorata, le etichette dei rami e dei tag si trovano sulla sinistra e i dettagli e i file del commit selezionato sono sulla destra.
Il grafico dei commit di GitTree: ogni ramo ha la propria corsia colorata, le etichette dei rami e dei tag si trovano sulla sinistra e i dettagli e i file del commit selezionato sono sulla destra.

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 // WIP sopra 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:

Lettura di un grafico di commit Git
Quello che vediCosa significa
Un punto (* nel terminale)Un impegno. I commit più recenti sono superiori a quelli più vecchi.
Una linea verticale, o corsiaUna linea di sviluppo: commit che si susseguono su un ramo.
Una linea che si divideQualcuno ha avviato un ramo da quel commit e il lavoro è continuato in due posti.
Due linee che si incontrano in un puntoUn commit di unione. Ha due genitori, uno per ciascuna linea.
Un'etichetta come main, origin/main o v1.0.0Un ramo locale, un ramo remoto o un tag che punta a quel commit. HEAD -> segna ciò che hai controllato.
Una linea retta, senza biforcazioniCronologia 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.

Un commit di unione selezionato nel tema chiaro di GitTree: il pannello dei dettagli mostra entrambi i genitori e i file modificati dall'unione.
Un commit di unione selezionato nel tema chiaro di GitTree: il pannello dei dettagli mostra entrambi i genitori e i file modificati dall'unione.

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"
  • --author mantiene i commit il cui nome dell'autore o indirizzo email corrisponde al modello.
  • --since e --until limitano 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.
  • -G trova 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 \w non 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:jane o author:"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, come git log -S.
  • change:/fn [a-z_]+_header/: una riga modificata corrisponde all'espressione regolare, come git 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.

La tavolozza dei comandi GitTree: digita # per cercare commit, @ per rami e tag o: per file.
La tavolozza dei comandi GitTree: digita # per cercare commit, @ per rami e tag o: per file.

Visualizza il tuo albero Git in GitTree

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 con author:, file: o change:.

Quale visualizzatore di alberi Git dovresti usare?

Tre modi per visualizzare la cronologia di Git
OpzioneMeglio perDi cosa hai bisogno
git log --graphSguardi rapidi, sessioni SSH, script e log CISolo Git
scemoUn grafico cliccabile dalla suite Git stessaGit (su Debian e Ubuntu, il pacchetto gitk separato)
GitTreeLeggere, cercare e modificare la cronologia in un'unica finestraGitTree (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à.