Comment bien cadrer son projet avec git flow ?

0
403
git flow

Après vous avoir présenté comment git peut vous aider à améliorer la cohésion de votre équipe, nous avions commencé ensemble à échanger sur l’importance de créer de la cohérence, et donc de la cohésion avec git, grâce à un cadre fixe, et donc choisir son flow avec git.

Découvrons ensemble comment git flow, bien que critiqué aujourd’hui, peut être un très bon cadre pour votre projet, pour votre équipe !

Git flow – Les rappels

Git flow est l’un des premiers cadres qui a été proposé pour bien suivre son projet, avec Git.
Il se base sur l’utilisation de deux branches :

  • la branche master / main
  • la branche development

Et ce qui a noté, dès le début de l’utilisation de ce flow, c’est que la branche maitresse, n’est pas celle que l’on croit.
Il s’agit de la branche development.

La branche development guide le git flow

Tout se crée à partir de la branche développement.
OK, la branche master / main est déjà présente, mais en fait, ce n’est pas elle qui nourrit la création de fonctionnalités.

Vous souhaitez démarrer une nouvelle fonctionnalité

Elle se fera à partir de la branche developpement : une nouvelle branche sera créée depuis cette branche parente.

Vous souhaitez finaliser une fonctionnalité

Elle sera fusionnée sur la branche development.

Vous avez envie de préparer une future livraison

Vous allez créer une nouvelle branche depuis la branche development.

Le rôle de la branche main / master

Ok, alors, mais à quoi sert la branche master / main, vous me direz ?

La branche main / master est en fait la copie « parfaite » (en tout cas elle se veux comme telle) de la Pproduction.
Ainsi, tout ce qui est sur cette branche sera livrée en production.

Donc dès qu’une préparation de livraison est validée, vous allez pouvoir fusionner la branche dédiée sur la branche master.
Et le tour est joué.

Un bug arrive ? Le git flow nous aide

Si un bug venant de la production arrive, nous allons pouvoir créer une branche dédiée : hot-fixes/mon-bug ou hot-fixes/mon-ticket (ou hot-fixes/mes-tickets).

Dès que la correction est faite, deux actions à faire :

  • fusion du travail sur la branche développement
  • fusion des corrections sur la branche master / main

Un dessin pour résumer toutes ces étapes

Bien cadrer, trop cadré le git flow ?

Avec toutes ces étapes, ces règles, on peut soit se sentir rassuré-e, soit se sentir perdu-e, non ?

  • Rassuré-e : tout est dit, on sait quoi faire, et quand faire
  • Perdu-e : trop d’étapes : peur de mal faire, de pas faire tout le temps comme il faut

C’est l’une des forces, et l’une des faiblesses de git flow.

Un CLI pour vous apporter un soutien rassurant, réconfortant

Heureusement, lorsqu’on installe git, on a directement une extension du Command Line Interface normal de git (sous commande DOS, ou bien commande bash) : il existe des commandes git dédiées pour bien suivre et respecter le git flow ! 🙂

Ainsi, plus besoin de se rappeler toutes les étapes, l’ordre des merges, …

  • Pour créer une fonctionnalité : git flow feature start mafonctionnalite
  • Pour la finir : git flow feature finish mafonctionnalite

Tout est vraiment très simple à apprendre, et à suivre !

Je vous invite à visualiser ce site, qui explique toutes les étapes de git flow, à travers une single page, bien construite !

Une critique possible de git flow

Git flow est souvent critiqué, à tort, ou à raison.

Parmi les arguments les plus impactants, on retrouve le fait que git flow génère un arbre, un historique, non linéaire, et donc moins lisible pour la pérénnité du projet.

A force de faire des merges de partout, il est vite difficile de lire la documentation première qu’est l’historique git.
C’est sans doute l’une des faiblesses, si vous faites partis des adorateurs des rebases et des arbres linéaires au possible.

Pour ou contre alors git flow ?

Si vous êtes plus de 5 à 6, il est clair que c’est un super cadre, et je vous conseille git flow.

En dessous, on peut aussi utiliser gitlab flow, ou github flow, plus souple, mais aussi plus risqué, si les développeurs ne maitrisent pas bien toutes les étapes d’intégration continue.

Je vous prépare deux articles dédiés pour les présenter.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici