Sinossi
git tag [-a] [-s] [-m <msg>] <name> [<commit>]
git tag -l ['<pattern>']
git tag -d <name>
Descrizione
Il comando git tag marca commit specifici con un nome memorizzabile, tipicamente usato per le release. Ci sono due tipi di tag: lightweight (solo un puntatore nominato) e annotated (un oggetto Git completo con autore, data, messaggio e firma GPG opzionale). Per le release, crea sempre tag annotated — portano i metadati che la gestione delle release richiede.
I tag NON vengono pushati per default. Usa git push origin v1.2.3 per pubblicare un singolo tag, o git push --tags per tutti. Una volta pubblicati, i tag sono normalmente immutabili; riscrivere un tag pubblicato rompe i consumatori ed è fortemente sconsigliato.
Nell'uso quotidiano, git tag si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
-a | Crea un tag annotated. |
-s | Crea un tag annotated firmato GPG. |
-m <msg> | Imposta il messaggio del tag. |
-l '<pattern>' | Elenca tag che corrispondono a un glob. |
-d <name> | Cancella un tag locale. |
-v <name> | Verifica un tag firmato. |
-f | Sostituisce un tag esistente (usa con cautela). |
--sort=<key> | Ordina la lista (es. -v:refname). |
Esempi
git tag -a v1.0.0 -m "Release 1.0"
# Crea un tag annotated all'HEAD
git tag -s v1.0.1 -m "Patch release" abc123
# Tag firmato GPG a un commit specifico
git tag -l 'v1.*' --sort=-v:refname
# Elenca i tag 1.x dal più nuovo
git push origin v1.0.0
# Pubblica un tag
Errori comuni
Creare un tag lightweight per una release perde metadati e firma. Usa -a o -s. Dimenticare git push --tags significa che i colleghi non vedono mai il tuo tag. Spostare un tag con -f dopo la pubblicazione confonde le cache e i sistemi CI.
Comandi correlati
git describe, git show, git push, git verify-tag