Καθώς δημιουργούμε και εξελίσσουμε ένα λογισμικό, είναι βολικό να θυμόμαστε συγκεκριμένα στάδια της εξέλιξης του, στα οποία υπήρχε συγκεκριμένη λειτουργικότητα. Αυτά συνήθως τα ονομάζουμε εκδόσεις και μάλιστα είναι συνηθισμένο να ακολουθούμε τις προδιαγραφές SemVer σχετικά με το πως επιλέγουμε να κάνουμε την ονοματοδοσία.
Μπορείτε να διαβάσετε επίσης και το άρθρο Το git με απλά λόγια
Στο git, για να βαφτίσουμε κάποιο συγκεκριμένο στάδιο του λογισμικού μας, χρησιμοποιούμε τις ετικέτες (tag) οι οποίες μπορούν να περιέχουν οποιοδήποτε κείμενο, αλλά συνήθως είναι συνοπτικές και σύμφωνες με τις προδιαγραφές SemVer.
Τεχνικά, μια ετικέτα στο git, είναι μια ευανάγνωστη αναφορά σε συγκεκριμένη υποβολή (commit), την οποία μπορούμε να ορίσουμε οποτεδήποτε. Επειδή κάθε υποβολή έχει τον δικό της μοναδικό 160-bit 40-character hexadecimal hash value, συσχετίσουμε μία ετικέτα με μία συγκεκριμένη υποβολή.
Υπάρχουν δύο ειδών ετικέτες α) χωρίς σχόλιο (lightweight, όπως παρακάτω) και β) με σχόλιο (-a, annotated).
Προβολή υποβολών (hash και μήνυμα)
$ git log –pretty=oneline
Δημιουργία ετικέτας σε συγκεκριμένο commit
$ git tag v0.1 27a15fdb54d78c6cf5837ae663ca28bf3185b40c
ή
$ git tag v0.1 27a15f (μόνο όσοι χαρακτήρες χρειάζονται για να υπάρξει μοναδικότητα)
Προβολή υπαρχόντων ετικετών
$ git tag
Δημιουργία ετικέτας σε συγκεκριμένο commit
$ git tag v0.1 27a1
Προβολή υπαρχόντων ετικετών
$ git tag
$ git help tag
Επαναφορά ανάπτυξης σε συγκεκριμένο commit
$ git checkout v0.1
Επαναφορά στον κύριο κλάδο ανάπτυξης
$ git checkout main
Αποστολή tags στον εξυπηρετητή (με σκέτο git push δεν προωθούνται τα tags)
$ git push origin –tags
Περισσότερα στο: https://git-scm.com/book/en/v2/Git-Basics-Tagging