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. Git
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

Git-Flow : workflow d’entreprise

Un système de gestion des branches

Travailler avec Git en équipe n’est pas quelque chose d’intuitif. Il faut se former et essayer plusieurs façons de travailler pour trouver celle qui convient le mieux. En effet, pour que l’utilisation d’un gestionnaire de version soit efficace, il faut que les intervenants suivent les mêmes pratiques.

Par exemple, il n’est pas facile pour un développeur de savoir quand créer une branche, quand créer un tag, ou encore de savoir dans quelle branche doit être mergée la branche d’une nouvelle fonctionnalité.

Vincent Driessen a proposé un système efficace de gestion des branches sur son blog professionnel (http://nvie.com/posts/a-successful-git-branching-model). Ce système de gestion des branches est voué à être utilisé par des équipes de petite taille jusqu’à des équipes importantes. Le but de ce système est de séparer efficacement les branches et les différentes versions du projet. Cette méthode de travail est largement répandue dans les projets utilisant Git, elle reçoit néanmoins quelques critiques de développeurs la jugeant trop complexe et générant de nombreux conflits inutiles.

Le 5 mars 2020, l’auteur de cette méthode, Vincent Driessen, a publié sur son site un message appelant les utilisateurs de Git à ne pas la sacraliser. En effet, il explique que de nombreux développeurs respectaient cette méthode à la lettre sans chercher à savoir si elle correspondait aux besoins de leur projet.

Il rappelle que Git-Flow est conçu pour les projets qui ont besoin de maintenir plusieurs versions d’un logiciel en même temps ou qui fonctionnent avec des distributions logicielles majeures. La méthode GitHub...

Exemple de workflow

Pour utiliser la méthode Git-Flow efficacement, il est préférable de nommer ses branches avec les termes anglais. De cette manière, tous les développeurs (français ou étrangers) seront capables de comprendre le schéma rapidement. De plus, utiliser les noms anglais favorise la compatibilité avec des outils s’interfaçant avec un dépôt en mode Git-Flow.

Avec la méthode Git-Flow, tous les merges doivent être effectués en désactivant l’avance rapide avec l’argument --no-ff de la commande git merge pour que chaque merge produise un commit. Cela permet d’avoir un historique plus clair et non pollué par les avances rapides.

Voici une vision schématique des branches composant un historique dans un dépôt géré par la méthode Git-Flow :

images/08E01.png

Le schéma précédent représente le dépôt utilisé pour le chapitre Scénario d’équipe. Le dépôt contient un projet nommé improllow-up. Ce projet permet aux entreprises de suivre plus efficacement les tâches de leurs salariés.

Voici l’enchaînement des étapes du dépôt représentées par le schéma :

  • C1 (master) : premier commit du projet. Ce commit ajoute la base du projet dans le dépôt (version v1.0.0).

  • C2 (develop) : création de la branche develop. Après ce commit, les deux branches éternelles auront été créées.

  • C3 (graph_employee) : création d’une branche de fonctionnalité pour ajouter des graphiques sur la page des salariés.

  • C4 (hotfix-negative-time) : création d’une branche de correctifs pour gérer le cas où le salarié entre une valeur négative...

Git-Flow intuitif grâce à Tower

1. Client Git et Git-Flow

Tower est un client Git sous forme d’interface graphique. Il est conçu pour être très ergonomique et intègre des fonctionnalités très intéressantes. Au moment où ces lignes sont écrites, Tower est vendu 59 euros hors taxes et propose une réduction pour les étudiants.

Il n’existe pas d’équivalent intégrant Git-Flow de manière aussi complète sous Windows. Il existe cependant des clients Git très efficaces compatibles Windows comme TortoiseGit, SmartGit (qui intègre Git-Flow), SourceTree et GitHub Desktop.

Le contenu du projet n’a aucune importance ici. Le seul but est d’obtenir un historique composé de différentes branches représentatives de la méthode Git-Flow. 

2. Cas pratique d’utilisation

Le dépôt résultant de ce cas pratique se trouve dans les fichiers téléchargeables : 08/git-flow.

Pour créer un nouveau dépôt avec Tower, il faut cliquer sur le bouton Create à partir de la page listant les dépôts utilisés :

images/08E02.png

Une fois que le dépôt a été créé, Tower propose de l’ouvrir avec le bouton Open de la fenêtre suivante :

images/08E03.png

La fenêtre précédente présente des informations intéressantes sur le dépôt comme le chemin du dépôt, la branche sur laquelle est placée la référence HEAD ou encore le statut des fichiers. Une fois que le dépôt est ouvert dans Tower, il faut ajouter le premier commit qui va former le début de la branche master.

Pour ajouter le premier commit, il faut créer des fichiers dans un projet avec un autre logiciel que Tower (car Tower est un client...