août 25, 2021

Gestion des branches et de la sécurité dans Git

Le versioning faisant partie intégrante du travail collaboratif, il est important de savoir l’utiliser sans faire d’impairs car la moindre erreur peut détruire le travail des autres.

Il s’agit ici de définir une stratégie qui m’appartient et qui a fait ses preuves dans les différentes projets sur lesquels je suis passé.

1 Le gitFlow

Il correspond au flux de travail.

La branche de travail est en général la branche « Feature » qui est tirée à partir de la branche Develop.

Le gitflow nécessite un peu de pratique mais est essentiel au travail collaboratif.

Il conditionne le CI / CD (Intégration continue et déploiement continu).

2 Définition et utilisation des branches

Master branch :

C’est une branche persistante et qui bouge très peu.

Elle correspond à ce qui existe en production.

Les commits sur cette branche sont réalisés à partir de pull requests en provenance des branches « release » ou « hotfix »

Develop branch :

C’est une branche persistante mais qui bouge beaucoup plus que la branche « master ».

Elle correspond à la prochaine à la prochaine release et c’est la branche du sprint en cours.

Les commits sur cette branche sont réalisés à partir de pull requests en provenance des branches de « feature ».

Feature branch :

Elle est créée au besoin à partir de la branche « develop »

Uniquement quand une feature est terminée, une pull request est crée vers develop , une fois la pull request validée , la branche est supprimée

Release branches :

Elle est créée par le release manager quand il est décicé de tester la release.Elle doit être tagguée si besoin (par exemple release 1.5.1)

Sa création se fait à partir de la branche « develop »

Une fois la release déployée en production :

  • On fait une pull request vers develop
  • Une pull request vers master
  • La branche « release » est supprimée

Bugfix branches :

Elle est créée par les developpeurs lorsqu’un bug est détecté sur la branche courante de release à partir de celle-ci (donc avant la mise en production généralement)

Une fois que le bugfix est terminé et testé :

  • On fait une pull request vers la release en cours
  • On fait une pull request vers develop
  • La branche de bugfix est supprimée

Hotfix branches :

Elle est créée par le release manager quand un bug en production peut être corrigé rapidement.

Sa création se fait à partir de la branche « master »

Une fois le hotfix déployée en production :

  • On fait une pull request vers develop
  • Une pull request vers master
  • La branche « hotfix» est supprimée.