I tag, in Git, fanno esattamente quello che pensate facciano: sono dei label che potete attaccare ai vari commit da usare principalmente per versionare il progetto a piacimento.

Esistono due tipi di tag, quelli lightweight e quelli annotated. La

Vedere tutti i tag

Per prima cosa, impariamo come visualizzare tutti i tag presenti nel repository, diamo semplicemente il comando git tag :

$ git tag
v1
v1.0.1

Gi vi mostrerà una lista dei tag in ordina alfabetico. Non contate molto sull’ordine di apparizione.

Creare un annotated tag

Un tag di tipo annotated, corrisponde ad un vero oggetto Git. Hanno un checksum, contengono le informazioni complete dello sviluppatore, oltre alla data e ad un messaggio. È generalmente consigliato usare questo tipo di tag, proprio per la sua capacità di conservare informazioni utili in futuro. Per creare un tag è sufficiente usare il comando git tag -a <nome> -m <messaggio> :

git tag -a v1.0.2 -m "Questa è la versione 1.0.2"

Verifichiamo quanto appena fatto usando il comando git show :

$ git show v1.0.2
tag v1.0.2
Tagger: Luca Murante <luca.murante@gmail.com>
Date:   Thu Apr 27 17:30:46 2017 +0200

Questa è la versione 1.0.2

commit dc8c7f71871636de83a6b33b3273fa2265698d0f
Author: Luca Murante <luca.murante@gmail.com>
Date:   Mon Apr 24 19:50:51 2017 +0200

    primo commit su test

Creare un tag lightweight

Un tag lightweight è un semplice puntatore ad un commit, non è un oggetto complesso. Per crearlo, è sufficiente usare il comando git tag <testo> senza alcuna opzione:

git tag v1.0.3

Quando proviamo a lanciare git show  otterremo una semplice visuale sul commit a cui è riferito:

$ git show v1.0.3
commit dc8c7f71871636de83a6b33b3273fa2265698d0f
Author: Luca Murante <luca.murante@gmail.com>
Date:   Mon Apr 24 19:50:51 2017 +0200

    primo commit su test

Taggare in un secondo momento

Se volessimo creare dei tag non sull’ultimo commit, ma su uno precedente? Con Git possiamo farlo indicando il checksum del commit al quale vogliamo collegarlo. Nel nostro esempio useremo git log per vedere la lista dei passati commit:

$ git log --pretty=oneline
dc8c7f71871636de83a6b33b3273fa2265698d0f primo commit su test
14f3ced9c0a20207fca5d11292496d2e237e1bb6 prova
51f1c0afe272bb5b9d13c5cb013a909ed2f09c3c Questo è il primo commit

Adesso, proviamo ad aggiungere il tag “v.1.0.0” al nostro commit più vecchio, cioè l’ultimo della lista:

git tag -a v1.0.0 51f1c0afe272bb5b9d13c5cb013a909ed2f09c3c

 

Come vedete l’abbiamo collegato semplicemente usando il checksum (o parte di esso, funzionerà ugualmente) del commit che ci interessa.