Come creare e gestire i tag Git
Creare e gestire i tag Git è semplice. Vediamo i diversi tipi di tag e come applicarli.
- Per usare i tag Git devi aver già installato Git sulla tua macchina. Puoi approfondire l’installazione di Git nel Git Install Tutorial.
- Un altro prerequisito è avere un repository Git inizializzato. Puoi leggere di più in How to Initialize and Set Up a Git Repository.
Creare tag leggeri
Un tag leggero è come un puntatore a un commit. Non include metadati, solo il nome del tag e il commit a cui punta.
Per crearne uno, puoi eseguire:
git tag v1.0.0
Questo comando crea un tag leggero che punta all’attuale commit di HEAD.
In alternativa puoi creare un tag per uno specifico commit fornendo l’hash del commit:
git tag v1.0.0 5c5fc06
I tag leggeri sono utili come riferimenti rapidi e locali, soprattutto in progetti individuali o lavori temporanei.
Creare tag annotati
I tag annotati memorizzano più informazioni, come il nome, l’email, la data e il messaggio di chi crea il tag. Sono salvati come oggetti Git completi e sono ideali per taggare release ufficiali o traguardi.
Puoi crearne uno eseguendo:
git tag -a v1.0.0 -m "Release version 1.0.0"
Questo comando crea un tag annotato chiamato v1.0.0 con il messaggio "Release version 1.0.0".
Puoi anche taggare uno specifico commit:
git tag -a v1.0.0 5c5fc06 -m "Tagging older commit"
I tag annotati offrono una documentazione migliore, si integrano bene con gli strumenti CI/CD e aiutano i team a tracciare la storia in modo più trasparente.
Taggare commit specifici
A volte devi taggare un commit che non è l’ultimo. Per farlo, puoi prima recuperare la cronologia dei commit e poi selezionare l’hash del commit che vuoi taggare.
Per ottenere l’hash, esegui:
git log --oneline
Copia l’hash del commit dall’elenco, quindi:
git tag -a v1.0.0 <commit-hash> -m "Tagging v1.0.0 release"
Verificare i tag creati
Per elencare tutti i tag nel repository, usa:
git tag
Se vuoi filtrare i tag, ad esempio solo le versioni che iniziano con v1., usa:
git tag -l 'v1.*'
Per vedere i dettagli di un tag specifico, esegui:
git show v1.0.0
Lavorare con i tag Git
Una volta creati i tag Git, spesso dovrai condividerli, aggiornarli o interagirci come parte del tuo workflow di sviluppo o rilascio. Questa sezione copre le attività più comuni per lavorare con i tag in repository locali e remoti.
Push dei tag su un repository remoto
I tag non vengono inviati automaticamente ai repository remoti quando esegui git push. Devi inviarli esplicitamente.
Per inviare un singolo tag:
git push origin v1.0.0
Per inviare tutti i tag in una volta:
git push --tags
I tag vanno inviati così che i tuoi compagni di squad pipeline CI/CD possano accedervi. I tag sono spesso usati anche come trigger di deploy, soprattutto seguendo flussi di rilascio versionati. Puoi leggere di più su come fare push e pull dei branch nel Git Push and Pull Tutorial.
Eliminare i tag
Se vuoi eliminare un tag, puoi farlo in locale e in remoto.
Per eliminarlo in locale, esegui:
git tag -d v1.0.0
Per poi eliminare lo stesso tag dal repository remoto:
git push origin --delete v1.0.0
Puoi anche eliminare direttamente il tag dall’interfaccia web di GitHub o GitLab.
>Se vuoi saperne di più su GitHub e su come usarlo, ti consiglio i corsi GitHub Foundations e GitHub Concepts.
Fare checkout dei tag
Puoi portare il repository allo stato di un tag specifico eseguendo:
git checkout v1.0.0
Tuttavia, questo ti mette in uno stato di HEAD staccata (detached). Significa che non sei più su un branch e ogni nuovo commit non apparterrà a nessun branch a meno che tu non ne crei esplicitamente uno:
git checkout -b hotfix-v1.0.0
Fare checkout di un tag specifico aiuta a fare debug o rivedere una certa versione di rilascio senza influire sul ramo di sviluppo attuale. Si usa anche per costruire l’applicazione in produzione a partire da una versione specifica, ad esempio quando bisogna creare un’immagine Docker.
Taggare dopo un commit
Se devi aggiornare un tag, ad esempio spostandolo su un commit diverso o cambiando il messaggio, puoi forzarne l’aggiornamento eseguendo:
git tag -f -a v1.0.0 5c5fc06 -m "retagging"
Puoi anche eseguire lo stesso comando senza un hash di commit per aggiungere semplicemente il tag all’attuale HEAD.
>Se ti serve una panoramica rapida dei comandi Git tradizionali, ti consiglio il Complete Git Cheat Sheet.
Best practice per usare i tag Git
Sapere come creare e gestire i tag è una cosa, usarli in modo efficace è un’altra. Se usati con criterio, i tag possono migliorare workflow, documentazione e comunicazione nel team.
Usare i tag per il versioning
I tag sono perfetti per il versionamento semantico, che è il modo consigliato di versionare le tue release.
Nel versionamento semantico, i numeri di versione seguono il formato MAJOR.MINOR.PATCH, per esempio v.1.2.0.
MAJOR per cambiamenti più estesi e incompatibili, MINOR per funzionalità aggiunte e PATCH per correzioni di bug.
Il versionamento semantico è molto potente: comunica chiaramente la portata dei cambiamenti, aiuta a capire la compatibilità e funziona bene con strumenti automatici come i trigger CI/CD.
Mantieni una convenzione di denominazione coerente. Scegli un pattern (ad esempio, prefissa sempre con v) e seguilo in tutte le release.
Taggare le release
I tag sono ideali per marcare le fasi chiave di rilascio del tuo progetto. Ecco alcuni tipi di tag utili da considerare:
v1.0.0-alpha: versione per test interniv1.0.0-beta: beta pubblicav1.0.0: rilascio finale in produzione
Taggando queste fasi, puoi condividere più facilmente build di test, tornare a release precedenti e mantenere una cronologia pulita dei deploy in produzione.
Puoi migliorare ulteriormente il processo usando tag annotati per le release, così da catturare contesto e documentazione adeguati.
Evitare l’abuso di tag
Per quanto utili e potenti, i tag possono diventare inutili se abusati. Dovrebbero marcare solo punti significativi nella storia del progetto, come versioni stabili, completamenti di funzionalità importanti, traguardi o scadenze.
Taggare ogni commit riempie di disordine il repository e vanifica lo scopo della navigazione rapida. Tienilo pulito e mirato!
Una buona regola empirica: probabilmente non serve un tag se non lo distribuirresti o non lo annunceresti.
Risoluzione dei problemi con i tag Git
Anche seguendo le best practice, a volte incontrerai problemi lavorando con i tag Git, soprattutto in team o sincronizzando con repository remoti. Questa sezione spiega come gestire i problemi più comuni.
Gestire lo stato di HEAD staccata
Quando fai checkout di un tag specifico con:
git checkout v1.0.0
Git ti mette in uno stato di HEAD staccata, come detto prima. Non sei su un branch, quindi se effettui un commit non apparterrà a nessun branch e potrebbe andare perso se non intervieni.
Puoi risolvere creando un branch eseguendo:
git checkout -b hotfix-v1.0.0
Ora stai lavorando su un branch e puoi fare commit e push come al solito.
Risoluzione dei conflitti tra tag
I conflitti possono verificarsi quando lo stesso nome di tag punta a commit diversi in locale e in remoto.
Spesso accade quando elimini e ricrei un tag in locale, o qualcun altro effettua un force-push di un tag.
Ci sono due opzioni per risolvere il problema.
Opzione 1: elimina e rifai push del tag
git tag -d v1.0.0
git push origin --delete v1.0.0
git tag -a v1.0.0 -m "Corrected tag"
git push origin v1.0.0
Opzione 2: force-push del tag aggiornato
Se sei sicuro che il tuo tag locale sia quello corretto e hai i permessi:
git push origin -f v1.0.0
Ma fai attenzione: il force-push può sovrascrivere le modifiche altrui. Usalo solo quando sei certo o dopo averne parlato con il team.
Conclusione
I tag Git sono uno strumento molto potente se usati con criterio. In questo tutorial hai imparato:
- Cosa sono i tag Git e quando usarli
- Come applicare i tag Git nel tuo repository
- Best practice per usare i tag Git
- Come risolvere i problemi più comuni quando lavori con i tag Git
Che tu stia rilasciando modelli di machine learning, pubblicando aggiornamenti a un data product o collaborando in team, i tag ti aiutano a segnare momenti significativi nella timeline del progetto. Mantengono tutto organizzato, riproducibile e facile da ripristinare o distribuire.
Io mi affido costantemente ai tag Git. Mi fanno risparmiare ore permettendomi di tornare a versioni stabili quando emergono bug o di attivare workflow CI/CD automatici. Li uso per taggare e versionare le immagini Docker per i build di produzione, garantendo che tutto ciò che distribuisco sia completamente tracciabile e documentato.
Inizia a usare i tag oggi e trasforma il tuo workflow Git!
FAQs
A cosa serve un tag Git?
Un tag Git segna punti specifici nella cronologia di un repository, spesso per release o traguardi importanti.
Qual è la differenza tra tag Git leggeri e annotati?
I tag leggeri sono semplici riferimenti a un commit, mentre i tag annotati memorizzano metadati come autore, data e messaggio.
Cosa succede quando faccio checkout di un tag in Git?
Entri in uno stato di “HEAD staccata” (detached), cioè non sei su un branch e i commit non verranno salvati su alcun branch a meno che tu non ne crei uno.
Come creo un tag Git?
Usa git tag <tagname> per un tag leggero o git tag -a <tagname> -m "message" per un tag annotato.
I tag Git sono comunemente usati nei workflow CI/CD?
Sì. I tag possono attivare build o deploy automatici nelle pipeline CI/CD, soprattutto quando si taggiano versioni di rilascio.

Sono un Cloud Engineer con una solida base in Ingegneria Elettrica, machine learning e programmazione. Ho iniziato la mia carriera nella visione artificiale, concentrandomi sulla classificazione delle immagini, per poi passare a MLOps e DataOps. Mi occupo di creare piattaforme MLOps, supportare i data scientist e fornire soluzioni basate su Kubernetes per semplificare i flussi di lavoro di machine learning.


Sono un ingegnere di machine learning. Se c’è una cosa essenziale che ho imparato, è che un versioning pulito non è solo una buona pratica: è fondamentale per la riproducibilità e la collaborazione.
I tag Git sono essenziali per segnare stati stabili del codice. Aiutano a creare release, effettuare rollback a una versione precedente o integrarsi nei workflow CI/CD. Che tu stia lavorando su codice, dati o nuovi modelli di machine learning, i tag Git ti semplificano la vita, a prescindere dal tuo background o ruolo.
In questo tutorial ti spiegherò tutto ciò che devi sapere per applicare e padroneggiare i tag Git. Pronto a vedere come i tag Git possono semplificarti lo sviluppo? Andiamo al sodo.
>Se prima vuoi una panoramica rapida di Git, ti consiglio di leggere GitHub and Git Tutorial for Beginners.
Che cos’è un tag Git?
Un tag Git è un modo semplice ma potente per segnare punti specifici nella cronologia di un progetto. Pensalo come un post-it su un determinato commit che dice: “Questo è importante”.
I tag Git solitamente etichettano versioni di rilascio, traguardi o checkpoint stabili nella base di codice. Sono riferimenti fissi a uno specifico commit ma non creano un nuovo commit. Una volta taggato un commit, quell’etichetta rimane ancorata a esso a meno che tu non sposti o elimini manualmente il tag.
Il branch master con due tag Git. Immagine dell’autore.
Esistono due tipi principali di tag:
>Per approfondire Git, ti consiglio di dai un’occhiata ai corsi Foundations of Git o Intermediate Git.