Git Tags

1 λεπτά

Πίνακας περιεχομένων

  1. Τι είναι μια ετικέτα;
  2. Τύποι ετικετών
  3. Πρακτική χρήση
  4. Διαχείριση εκδόσεων

1. Τι είναι μια ετικέτα;

Git tag = Μόνιμη ετικέτα σε ένα συγκεκριμένο commit.

Κύρια χρήση: Σήμανση των εκδόσεων (v1.0, v2.0 κ.λπ.)

Διαφορά από τους κλάδους:

  • Κλάδος = Κινητός, εξελίσσεται με νέα commits
  • Ετικέτα = Σταθερή, δείχνει πάντα στο ίδιο commit

Αναλογία: Ετικέτα = αυτοκόλλητο «Έκδοση 1.0» σε μια σελίδα τετραδίου.

Επιστροφή στον πίνακα περιεχομένων

2. Τύποι ετικετών

Lightweight tag (απλή)

bash
git tag v1.0                # Απλή ετικέτα
  • Μόνο ένα όνομα
  • Δείκτης προς ένα commit
  • Γρήγορη δημιουργία

Annotated tag (πλήρης)

bash
git tag -a v1.0 -m "Version 1.0 - First stable release"
  • Περιέχει μήνυμα
  • Ημερομηνία και συγγραφέας
  • Μπορεί να υπογραφεί (GPG)
  • Συνιστάται για επίσημες κυκλοφορίες

Επιστροφή στον πίνακα περιεχομένων

3. Πρακτική χρήση

Ρύθμιση έργου:

bash
mkdir demo-tags && cd demo-tags
git init

echo "print('app v0.1')" > app.py
git add . && git commit -m "Initial version"

echo "print('app v0.2')" > app.py  
git add . && git commit -m "Bug fixes"

echo "print('app v1.0')" > app.py
git add . && git commit -m "First stable version"

Δημιουργία ετικετών:

bash
# Απλή ετικέτα
git tag v1.0

# Ετικέτα με μήνυμα  
git tag -a v1.0-stable -m "Version 1.0 - Production ready"

# Ετικέτα σε προηγούμενο commit
git log --oneline           # Προβολή των hash
git tag v0.2-beta <hash>    # Ετικέτα σε συγκεκριμένο commit

Λίστα ετικετών:

bash
git tag                     # Όλες οι ετικέτες
git tag -l "v1.*"          # Ετικέτες που ταιριάζουν στο μοτίβο
git show v1.0              # Λεπτομέρειες της ετικέτας

Πλοήγηση με ετικέτες:

bash
git checkout v1.0          # Μετάβαση στο επισημασμένο commit
git checkout main          # Επιστροφή στο main

Αποστολή ετικετών:

bash
git push origin v1.0       # Αποστολή συγκεκριμένης ετικέτας
git push origin --tags     # Αποστολή όλων των ετικετών

Επιστροφή στον πίνακα περιεχομένων

4. Διαχείριση εκδόσεων

Σύμβαση Semantic Versioning:

vMAJOR.MINOR.PATCH
- v1.0.0 → First stable release
- v1.0.1 → Bug fix
- v1.1.0 → New feature (backward compatible)  
- v2.0.0 → Breaking changes

Τυπική ροή κυκλοφορίας:

bash
# Η ανάπτυξη ολοκληρώθηκε
git checkout main
git pull origin main

# Ετικέτα κυκλοφορίας
git tag -a v1.2.0 -m "Release v1.2.0 - Add user authentication"

# Αποστολή κώδικα + ετικετών
git push origin main
git push origin v1.2.0

# Ή αποστολή όλων μαζί:
git push origin main --tags

Διαχείριση ετικετών:

bash
# Διαγραφή τοπικής ετικέτας
git tag -d v1.0

# Διαγραφή απομακρυσμένης ετικέτας
git push origin --delete v1.0

# Τροποποίηση ετικέτας (αναδημιουργία)
git tag -d v1.0                           # Διαγραφή τοπικά
git push origin --delete v1.0             # Διαγραφή απομακρυσμένα  
git tag -a v1.0 -m "Corrected message"    # Αναδημιουργία
git push origin v1.0                      # Επανάληψη αποστολής

Περιπτώσεις χρήσης:

1. Κυκλοφορία στην παραγωγή:

bash
git tag -a v2.1.0 -m "Production release v2.1.0"
git push origin v2.1.0
# Ανάπτυξη της έκδοσης v2.1.0 στην παραγωγή

2. Επιστροφή σε προηγούμενη έκδοση:

bash
git checkout v2.0.0        # Επιστροφή σε σταθερή έκδοση
git checkout -b hotfix-v2.0.0    # Δημιουργία κλάδου hotfix

3. Σύγκριση εκδόσεων:

bash
git diff v1.0.0 v2.0.0     # Προβολή όλων των αλλαγών

Ετικέτες = μόνιμα ορόσημα του έργου σας. Χρησιμοποιήστε τις για όλες τις κυκλοφορίες σας!

Επιστροφή στον πίνακα περιεχομένων