Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Git
  3. Les branches et les tags
Extrait - Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (4e édition)
Extraits du livre
Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (4e édition) Revenir à la page d'achat du livre

Les branches et les tags

Les tags

Un tag est un alias (un nom) défini par un développeur, dont le rôle est de pointer vers un commit. Il permet d’identifier facilement un commit. Les tags sont utilisés pour nommer à des moments précis l’état du dépôt. Les tags permettent d’éviter l’utilisation des hashs SHA-1 qui ne sont pas explicites et difficiles à retenir.

Les tags sont notamment utilisés pour marquer des numéros de version sur des commits.

1. Numérotation des versions

Il existe plusieurs manières de noter les versions d’un logiciel. Il n’y a pas de méthode parfaite pour choisir les numéros de versions. Il faut juste rester cohérent avec le système choisi.

Le système SemVer (pour Semantic Versioning) est un système dont la philosophie est de donner un numéro de version qui ait du sens dans le cycle de vie du logiciel. Ce système est utilisé sur des projets de grande envergure comme Python ou Django et est parfaitement adapté à des projets de petite taille.

Le numéro de version se construit à partir de trois nombres séparés de points : x.y.z

Signification des trois nombres :

  • Le x va marquer une version majeure. Une version majeure est une version qui entraîne des modifications importantes dans le fonctionnement de l’application ou encore qui induit une incompatibilité avec une version précédente.

  • Le y va marquer une version mineure. Une version mineure est une version qui ajoute des fonctionnalités tout en conservant une compatibilité avec l’ancien système.

  • Le z va marquer un patch. Un patch correspond à des corrections de bugs sans ajout de fonctionnalités.

Ainsi, on peut imaginer un extrait de liste des modifications (changelog) d’un logiciel...

Les branches

Le système de branches est l’une des fonctionnalités les plus intéressantes de Git. Les branches sont un concept que l’on retrouve dans quasiment tous les autres systèmes de versionning.

Une branche correspond en réalité à une version parallèle de celle en cours de développement. Une branche peut servir à développer de nouvelles fonctionnalités ou encore à corriger d’éventuels bugs sans pour autant intégrer ces modifications à la version principale du logiciel. Les branches permettent de segmenter différentes versions en cours de développement.

Vous utilisez d’ailleurs déjà une branche depuis le début de ce livre, sans forcément y avoir fait attention. Par défaut, lorsqu’on travaille sur un dépôt Git, une branche master est créée. C’est sur cette branche qu’il faut effectuer toutes les manipulations.

En réalité, et à l’instar des tags, les branches sont des alias. C’est-à-dire qu’un tag ou une branche définit un nom sur un commit. La différence entre les deux, c’est que le commit lié au tag est statique là où pour une branche la référence est dynamique.

Ci-dessous se trouve un exemple de système de branches sous forme de graphique. Cet exemple se situe dans une entreprise qui édite un logiciel de comptabilité avec l’enregistrement des commandes clients.

images/06E01.png

Graphique généré à l’aide de gitgraph.js disponible sur GitHub (https://github.com/nicoespeon/gitgraph.js)

Dans cet exemple composé de cinq commits, le premier représente la branche de développement. C’est dans cette branche que toutes les nouvelles fonctionnalités sont...