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.