Aller au contenu principal

Gitflow : Pourquoi, Comment et Quand l’utiliser

Introduction

Gitflow est un modèle de gestion de branches pour Git, conçu pour faciliter la collaboration sur des projets de développement logiciel, en particulier ceux ayant des cycles de release réguliers et structurés.


Pourquoi utiliser Gitflow ?

  • Organisation structurée : Clarifie le rôle de chaque branche.
  • Collaboration facilitée : Adapté aux équipes de développement.
  • Gestion des releases : Simplifie l’intégration de nouvelles fonctionnalités, corrections et hotfixes.

Comment fonctionne Gitflow ?

Branches principales

  • main (ou master) : Contient le code en production.
  • develop : Contient le dernier code stable en cours de développement.

Branches de support

  • Feature branches (feature/*)
    Pour le développement de nouvelles fonctionnalités.
    Créées à partir de develop, fusionnées dans develop une fois terminées.

  • Release branches (release/*)
    Pour préparer une nouvelle version de production.
    Créées à partir de develop, fusionnées dans main et develop à la fin.

  • Hotfix branches (hotfix/*)
    Pour corriger rapidement des bugs en production.
    Créées à partir de main, fusionnées dans main et develop.

Exemple de workflow

  1. Début d’une fonctionnalité
    git checkout develop
    git checkout -b feature/ma-fonctionnalite
  2. Fin de la fonctionnalité
    git checkout develop
    git merge feature/ma-fonctionnalite
    git branch -d feature/ma-fonctionnalite
  3. Préparation d’une release
    git checkout develop
    git checkout -b release/1.0.0
  4. Déploiement et correctif urgent
    git checkout main
    git checkout -b hotfix/1.0.1

Quand utiliser Gitflow ?

  • Projets structurés : Avec des cycles de releases clairs.
  • Équipes moyennes à grandes : Où la collaboration et la séparation des tâches sont essentielles.
  • Projets nécessitant plusieurs versions en parallèle.

À éviter pour les petits projets ou ceux ayant des déploiements continus très fréquents (préférez des workflows plus simples comme GitHub Flow).


Conclusion

Gitflow est un workflow puissant pour organiser le développement logiciel, mais il doit être adapté à la structure et au rythme de votre équipe. Il facilite la gestion des versions et la collaboration, au prix parfois d’une certaine complexité.