Il comando Git tag in Git


Lezione 24 / 53

Il comando Git tag in Git

Di Luca Ferretti


git guida git guida git italiano

Git permette di aggiungere un tag a uno specifico commit, in modo da poter usare tale tag come riferimento per uno specifico punto nella history del repository. Utilizzo tipico dei tag è quello di contrassegnare un determinato rilascio o versione, per poter in un secondo momento accedervi con semplicità. A differenza dei branch, infatti, una volta creato un tag non vengono “aggiunti” i nuovi successivi commit al tag.

Il comando che permette di gestire i tag Git è git tag, vediamone alcuni usi.

git tag <TAG_NAME>

Associa al commit attualmente estratto nella working copy il tag con nome TAG_NAME.

Non avendo specificato alcuna opzione, Git creerà un tag lightweight, ovvero un tag senza particolari metadati aggiunti (ad esempio. chi ha creato il tag). I tag lightweight sono essenzialmente dei “segnalibri” per singoli commit, è buona pratica non usarli per contrassegnare rilasci pubblici, ma usarli solo localmente per contrassegnare particolari commit ritenuti importanti in fase di sviluppo.

git tag -a <TAG_NAME>

Crea un tag annotated, cioè oltre al nome fornito per il tag Git salverà nel repository metadati aggiuntivi come nome ed email di chi ha creato il tag, data, …

Nel momento in cui si crea un tag annotated, come per i commit, viene richiesto un messaggio, che può essere fornito direttamente con il comando tramite l’opzione -m "messaggio del tag"

$ git tag
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.1.1-alpha
...

$ git tag -l "*beta*"
v1.1.1-beta
v1.1.1-beta2
v1.1.1-beta3

Se eseguito senza alcuna opzione, il comando git tag mostra i tag attualmente presenti nel repository. È possibile filtrare solo i tag contenenti una determinata espressione usando l’opzione -l e una espressione con wildcard.

$ git tag -a v1.2.0 0d52aaab4479697da7686c15f77a3d64d9165190

Aggiungendo l’id di un commit al comando usato per creare un tag, il tag verrà applicato al commit indicato invece che a quello corrente.

$ git tag -d <TAG_NAME>

L’opzione -d permette di rimuovere uno specifico tag esistente.

$ git tag
v1
v1.0.0
$ git add package.json
$ git commit -m "release version 1.1.0"
$ git tag v1.1.0 -m "tagging version 1.1.0"
$ git tag -f v1 -m "moving tag v1 to latest release"

È ovviamente possibile avere più tag per ogni commit, così come, nel caso sia necessario, “spostare” un tag esistente da un commit a un’altro. Nei comandi indicati nell’esempio qui sopra supponiamo infatti che esista un commit che è stato precedentemente taggato con i tag v1.0.0 (la versione esatta) e un generico v1 (ovvero un tag che indica l’ultimo rilascio della versione “1” del progetto). Nel momento in cui rilasciamo la versione 1.1.0 possiamo creare un nuovo tag sul nuovo commit per la versione specifica v1.1.0 e forzare l’update del tag esistente v1 in modo che punti anch’esso all’ultimo commit appena creato. Notare che queste convenzioni sono di progetto e non di Git.

Un’ ultima annotazione: come ogni altro riferimento a commit nella history, Git permette di usare il nome di un tag in molti altri comandi, ad esempio:

  • git checkout v1.3.0 - esegue il checkout del commit taggato come v1.3.0
  • git diff v1.1.1-beta..v1.1.1-beta2 mostra il diff tra due tag esistenti
Guida Git in italiano 1 Che cos'è Git? 2 Nascita di Git 3 Principali caratteristiche di Git 4 Riga di comando e UI in Git 5 Come Installare Git 6 5 comandi Git per sviluppatori singoli 7 5 comandi Git per sviluppare collaborando 8 Repository in Git 9 Commit in Git 10 Working Copy in Git 11 Staging Area in Git 12 Branch in Git 13 Remote in Git 14 Inizializzare un nuovo repository con git init 15 Creare una copia di un repository remoto in Git con git clone 16 Configurare le opzioni di Git con git config 17 Il comando Git add in Git 18 Il comando Git commit in Git 19 Il comando Git diff in Git 20 Il comando Git stash in Git 21 .gitignore : i file ignored in Git 22 Il comando Git status in Git 23 il comando Git log in Git 24 Il comando Git tag in Git 25 Il comando Git blame in Git 26 Il comando Git checkout in Git 27 Il comando Git revert in Git 28 Il comando Git reset in Git 29 Il comando Git rm in Git 30 L'opzione Git commit –amend in Git 31 Git rebase –interactive in Git 32 Scorciatoie per comandi frequenti in Git 33 Repository condiviso in Git 34 Il modello Fork & pull 35 Il comando Git remote in Git 36 I principali repository remote di Git: Github, Gitlab e Bitbucket 37 Il comando Git fetch in Git 38 Il comando Git push in Git 39 Il comando Git pull in Git 40 Il comando Git branch in Git 41 Il comando Git checkout in Git 42 Il comando Git merge in Git 43 Risolvere un merge conflict in Git 44 Capire meglio il contenuto dei commit durante un conflitto di merge in Git 45 Workflow Git centralizzato 46 Workflow Git feature branching 47 Workflow Git trunk-based 48 Approccio “forking” in Git 49 Gitflow in Git 50 Messaggi di commit in Git 51 Tagging & Versioning in Git 52 L’opzione merge in Git 53 L’opzione rebase in Git
Scopri i corsi

Le nostre guide possono essere molto utili per muovere i primi passi nel mondo della programmazione, ma se vuoi iniziare una nuova carriera in ambito digital & tech con il supporto costante dei docenti e tantissime esercitazioni pratiche, ti consigliamo di frequentare uno dei corsi della nostra Hackademy!

Scopri i corsi