Tenere traccia delle versioni del software è un compito complicato e Git aiuta a gestirlo. Utilizzando il sistema di tagging di Git, puoi creare numeri di versione con versione che puntano a commit specifici e utilizzarli nell’automazione CI/CD per pubblicare le versioni.
Tagging dei rilasci in Git I tag Git sono molto simili ai rami Git. Sono etichette che puntano a commit specifici e possono essere utilizzate per controllare un repository in un momento specifico. Tuttavia, a differenza dei rami, non sono pensati per essere aggiornati e modificati e punteranno sempre a una versione specifica.
I tag vengono comunemente utilizzati per applicare i numeri di versione a versioni specifiche, in genere utilizzando il formato di controllo delle versioni semantico (Major.Minor.Patch). Questo è molto utile per tenere traccia dei rilasci, soprattutto quando sorgono problemi e le distribuzioni devono essere ripristinate a un tag precedente di cui è stato confermato il funzionamento.
I tag vengono utilizzati anche per segnalare alle pipeline CI/CD che una versione deve essere pubblicata. Alcuni repository potrebbero voler pubblicare una versione “più recente” su ogni singolo commit, specialmente quando si eseguono solo test per i rami di sviluppo. I tag vengono spesso utilizzati in modo che le pipeline CI di rilascio vengano eseguite e distribuite solo quando specificamente richiesto.
Quando esegui il push su un telecomando come GitHub, i tuoi tag verranno visualizzati nella scheda Rilasci, che consente a chiunque di clonare o scaricare il repository da quel tag.
Puoi effettuare il checkout di tag specifici con il git checkout comando, nello stesso modo in cui funziona il check-out di un ramo.
git checkout v1.0.0 Creazione di tag La creazione di un semplice tag è molto semplice. Dovrai eseguire il checkout del commit o del ramo che desideri taggare e quindi eseguire git tag con il nome del tag.
git checkout master git tag v1.0.0 Tuttavia, è pratica comune da usare tag annotatiche consentono di impostare una descrizione e memorizzare dati aggiuntivi su chi li ha creati e quando, proprio come fanno i commit.
git tag -a v1.0.0 -m “New Release Version – Summary”
Puoi anche taggare i commit precedenti senza verificarli:
git tag -a v1.2 commit_id I tag non vengono inviati a dispositivi remoti come GitHub con il comando push predefinito di Git. Dovrai eseguirlo con –tagso spingere manualmente il nome del tag.
git push origin –tags Eliminazione e modifica dei tag Anche i tag possono essere eliminati, ma è importante considerare che la rimozione di tag dai server remoti può interferire con altri collaboratori nel tuo repository. Tuttavia, poiché in realtà non stai modificando la cronologia di Git, è principalmente come eliminare un vecchio ramo, che non tocca i commit effettivi.
Puoi eliminare i tag per nome con il file -d bandiera:
git tag -d v1.0.0 E rimuovili dal telecomando con:
git push origin –delete v1.0.0 Per modificare un tag, puoi utilizzare il file -f flag per forzare Git a sovrascrivere un tag esistente:
git tag -f v1.0.0 Creazione di rilasci su GitHub GitHub supporta anche i tag, ma li espande con il proprio sistema di “rilasci”. I rilasci possono essere effettuati da tag, ma possono anche essere effettuati da qualsiasi commit specifico o con l’attuale HEAD di qualsiasi ramo.
Lo scopo principale della pubblicazione delle versioni è quello di fornire binari predefiniti che le persone possono scaricare, qualcosa che è molto utile su GitHub ma che i tag stessi non forniscono. In caso contrario, gli utenti dovrebbero comunque clonare un tag specifico e creare dal sorgente.
L’altro scopo è documentare le note di rilascio e GitHub Releases supporta anche il markdown. Ciò fornisce agli utenti un bel posto per scorrere le versioni e vedere le grandi modifiche della versione nel tempo.
La creazione di una versione è piuttosto semplice. Dalla barra laterale del tuo repository, fai clic su “Rilasci” e creane uno nuovo:
Da questa schermata, puoi digitare le note di rilascio con markdown e trascinare i file binari per il rilascio. GitHub fornirà automaticamente un collegamento al codice sorgente in quel tag per te.
Puoi anche creare rilasci automaticamente dai tag utilizzando GitHub Actions. Questo ti evita di caricare binari ogni volta, il che è un bel pezzo di automazione per il tuo repository.