Κατηγορίες
tech

Αρίθμηση εκδόσεων με ετικέτες στο git

Καθώς δημιουργούμε και εξελίσσουμε ένα λογισμικό, είναι βολικό να θυμόμαστε συγκεκριμένα στάδια της εξέλιξης του, στα οποία υπήρχε συγκεκριμένη λειτουργικότητα. Αυτά συνήθως τα ονομάζουμε εκδόσεις και μάλιστα είναι συνηθισμένο να ακολουθούμε τις προδιαγραφές 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