Comment utiliser les balises GIT pour améliorer vos processus de développement

Comment utiliser les balises GIT pour améliorer vos processus de développement
Pour la plupart des équipes de développement, Git est devenu un outil essentiel pour le contrôle de la version. Une grande raison de la popularité de Git est sa capacité transparente à créer des branches. Les équipes de développement peuvent utiliser des branches pour travailler sur des fonctionnalités ou des versions spécifiques. Cependant, la balise de Git est une commande souvent négligée qui peut aider les équipes à simplifier leurs workflows. Dans cet article, nous plongerons dans le qui est, comment est et pourquoi le tagging Git.

Que sont les tags git?

Les étiquettes Git sont des conseils vers certains commits. Ils sont comme des signets. Vous pouvez utiliser tout type de convention que vous souhaitez créer des balises. Mais la plupart des équipes de développement utilisent des numéros de version comme V1.0.1 ou V.1.1-A1 pour créer des balises.

Création de balises

Il existe deux types de balises dans GIT:

  • Tags légers
  • Tags annotés

Tags légers

Les étiquettes légères sont faciles à créer. Vous pouvez simplement utiliser la ligne de commande suivante:

$ git tag

Ces balises sont stockées dans le .Dossier GIT de votre référentiel de travail.

Créons quelques étiquettes GIT légères:

$ git tag v1.0.1
$ GIT TAGE Release-20190401

Dans le premier cas, nous avons créé une balise avec «V1.0.1". Dans le deuxième cas, nous avons créé une balise avec "Release-20190401". Les balises légères ne renvoient aucune valeur. De plus, il est important de souligner que parce que ces deux étiquettes ont été réalisées dos à dos, ils pointent vers le même engagement.

Tags annotés

Les étiquettes annotées vous permettent de stocker plus d'informations. Vous pouvez utiliser l'option «-a» pour créer ces balises:

$ git tag -a

Essayons de créer une balise annotée:

git tag -a v1.0.2

Il apparaîtra à une fenêtre de texte pour que vous saisisse un commentaire qui devrait ressembler à ceci:

#
# Écrivez un message pour tag:
# v1.0.2
# Les lignes commençant par '#' seront ignorées.

Entrez un commentaire et enregistrez-le. Alors, maintenant votre tag v1.0.2 est sauvé avec un commentaire. Alternativement, vous pouvez dire directement le commentaire dans la ligne de commande comme ceci:

git tag -a v1.0.3 -M "Ma version 1.0.3 "

Trouver des balises dans votre code

Maintenant que nous avons créé quelques balises, voyons ce que nous avons:

$ git tag -l
Version-20190401
v1.0.1
v1.0.2
v1.0.3

Nous pouvons voir que toutes nos balises sont affichées dans l'ordre alphabétique. Vous pouvez obtenir plus d'informations sur les balises en utilisant le «-n» où représente le nombre de lignes des commentaires.

$ git tag -n1
Version-20190401 README MISE À JOUR.Maryland
v1.0.1 Readme mis à jour.Maryland
v1.0.2 Ma version 1.0.2
v1.0.3 Ma version 1.0.3

Ici, vous pouvez remarquer une différence entre les étiquettes légères et annotées. Dans cet exemple, «Release-20190401» et «V1.0.1 ”sont des balises légères. Le «V1.0.2 ”et« V1.0.3 ”sont des balises annotées. Tous pointent vers le même engagement (engagement 34671):

$ git journal
Commit 106E0BB02A58EC3E818E9ACDF3BB19A9247A0E84 (Head -> Master, Tag: V1.0.4)
Auteur: Zak H
Date: Sat avril 6 21:06:02 2019 -0700
Ajout de fonction 2
Commit 161C6E564E79624623ED767397A98105426D0EC4
Auteur: Zak H
Date: Sat avril 6 21:05:25 2019 -0700
Ajout de la fonction 1
Commissez 34671D824F9B9951E57F867998CB3C02A11C4805 (Tag: V1.0.3, tag: v1.0.2,
Tag: v1.0.1, tag: version-20190401)
Auteur: Zak H
Date: Sat avril 6 20:24:53 2019 -0700
Readme mis à jour.Maryland
commit ate9b0c7c9fbce3c3d585afe67358a5eec226e2c (origine / maître)
Auteur: Zak H
Date: Sat avril 6 20:23:55 2019 -0700
Init

Cependant, les balises légères affichent les commentaires de l'engagement lui-même qui est «Readme mis à jour.MD ", tandis que les balises annotées affichent les commentaires individuels qui leur ont été ajoutés pendant le processus de création de balises.

Conseil: Si vous souhaitez trouver le numéro de validation d'une balise particulière, vous pouvez utiliser la commande «Git Show»:

$ git show v1.0.3
Tag V1.0.3
Tagger: Zak H
Date: samedi 6 20:43:30 2019 -0700
Ma version 1.0.3
Commissez 34671D824F9B9951E57F867998CB3C02A11C4805 (Tag: V1.0.3, tag: v1.0.2, tag:
v1.0.1, tag: version-20190401)
Auteur: Zak H
Date: Sat avril 6 20:24:53 2019 -0700
Readme mis à jour.Maryland
Diff --git A / Readme.MD B / Readme.Maryland
Index 9DAEAFB… 180CF83 100644
--- a / readme.Maryland
+++ B / Readme.Maryland
@@ -1 +1 @@
-test
+test2

Étiqueter les commits plus anciens

Vous pouvez également revenir en arrière et marquer un commit plus ancien. Regardons les journaux:

$ Git Log --Oneline
106e0bb (tête -> maître, tag: v1.0.4) Ajout de fonction 2
161C6E5 Ajout de fonction 1
34671d8 (étiquette: v1.0.3, tag: v1.0.2, tag: v1.0.1, tag: version-20190401) Readme mis à jour.Maryland
afe9b0c (origine / maître) init
$

Nous remarquons que le commit 161C6E5 n'a pas de balise associée. Nous pouvons étiqueter cette validation comme ceci:

$ git tag -a version-20190402 161c6e5

Il apparaîtra la fenêtre de commentaire. Après avoir mis le commentaire, nous pouvons voir que nous avons le commit tagué maintenant:

$ git tag -n1
Version-20190401 README MISE À JOUR.Maryland
Version-20190402 Ajout d'une balise à un commit plus ancien
v1.0.1 Readme mis à jour.Maryland
v1.0.2 Ma version 1.0.2
v1.0.3 Ma version 1.0.3
v1.0.4 Fonctionnalité ajoutée 2

Suppression des balises

Supposons que vous décidez que vous ne voulez pas que les balises "release-" car elles sont déroutantes. Vous pouvez d'abord trouver toutes les balises «Release-»:

$ git tag -l version *
Version-20190401
Version-20190402

Maintenant, vous pouvez les supprimer avec l'option «-d»:

$ git tag -d version-20190401
Tag supprimé 'version-20190401' (était 34671d8)
$ git tag -d version-20190402
Tag supprimé 'version-20190402' (était 6EE37BC)

Si nous vérifions à nouveau les balises, nous ne devons voir que les balises qui commencent par «V»:

$ git tag -n1
v1.0.1 Readme mis à jour.Maryland
v1.0.2 Ma version 1.0.2
v1.0.3 Ma version 1.0.3
v1.0.4 Fonctionnalité ajoutée 2

Tags d'écrasement

Supposons que nous ayons une situation où «V1.0.La balise de 4 ”s'accumule sur la caractéristique 2:

$ Git Log --Oneline
D7B18A4 (tête -> maître) Ajout de fonction 3
106e0bb (étiquette: v1.0.4) Ajout de fonction 2
161C6E5 Ajout de fonction 1
34671d8 (étiquette: v1.0.3, tag: v1.0.2, tag: v1.0.1) Readme mis à jour.Maryland
afe9b0c (origine / maître) init

Mais nous voulons le tag «v1.0.4 ”pour pointer la caractéristique 3. Si nous essayons de le retagner, nous obtenons cette erreur:

$ git tag v1.0.4 D7B18A4
Fatal: Tag 'V1.0.4 'existe déjà

Nous pouvons surmonter ce problème avec l'option «-f»:

$ git tag -f v1.0.4 D7B18A4
Tag mis à jour 'v1.0.4 '(était 106e0bb)

Si nous vérifions à nouveau le journal, nous voyons que la balise a passé à l'engagement que nous voulons:

$ Git Log --Oneline
D7B18A4 (tête -> maître, tag: v1.0.4) Ajout de fonction 3
106e0bb Ajout de fonction 2
161C6E5 Ajout de fonction 1
34671d8 (étiquette: v1.0.3, tag: v1.0.2, tag: v1.0.1) Readme mis à jour.Maryland
afe9b0c (origine / maître) init

Alternativement, vous pouvez également supprimer une balise et la réadapter à un nouvel engagement.

Partage de balises avec d'autres utilisateurs

Lorsque vous poussez votre code vers votre référentiel distant, les balises GIT ne sont pas poussées automatiquement. Si vous souhaitez partager vos balises avec d'autres utilisateurs, vous devez les pousser exclusivement.

Les balises peuvent être poussées comme ceci:

$ git push Origin v1.0.4
Compter les objets: 12, fait.
Compression delta en utilisant jusqu'à 4 threads.
Compression des objets: 100% (4/4), fait.
Écriture d'objets: 100% (12/12), 902 octets | 150.00 kib / s, fait.
Total 12 (Delta 0), réutilisé 0 (Delta 0)
Vers / utilisateurs / zakh / _Work / Learngit / git_tagging / distote / project_mayhem
* [Nouvelle étiquette] v1.0.4 -> v1.0.4

Maintenant, si d'autres utilisateurs clonent le référentiel distant, ils ne verront que la balise qui a été poussée («V1.0.4 ”dans ce cas).

Utilisation des branches vs balises

Les branches sont utiles pour les nouvelles fonctionnalités ou l'expérimentation. Généralement, vous voulez vous ramifier lorsqu'il y a de futurs travaux qui doivent être faits et que les travaux perturbent votre développement actuel. D'un autre côté, les balises sont plus utiles comme des instantanés. Vous devriez les utiliser pour vous souvenir des choses particulières que vous avez déjà faites.

En conclusion

Git Tag est une fonctionnalité sous-utilisée qui peut fournir un excellent moyen de suivre les versions et les fonctionnalités spéciales. Si vous mettez en place de bonnes pratiques autour des balises, cela peut vous aider à communiquer facilement avec votre équipe de développement et à simplifier vos processus de développement.

Une étude plus approfondie:

  • https: // git-scm.com / book / en / v2 / git-basics-tagging
  • https: // logiciel.stackexchange.com / Questions / 165725 / Git-Branching and Tagging-Best-Practices
  • https: // www.atlassien.com / git / tutoriels / inspection-a-repository / git-tag
  • https: // en.Wikipédia.org / wiki / logiciel_versioning
  • https: // www.Techopedia.com / Définition / 25977 / Version du logiciel