Skip to main content

Gestion des branches

Les commandes mentionnées ici font partie du workflow GitFlow, qui est une extension de Git utilisée pour structurer et automatiser les branches et le flux de travail de développement. Ces commandes proviennent du plugin Maven Maven GitFlow Plugin.

Voici une explication des différentes commandes et de leur utilisation.

1. gitflow:release-start

  • But : Commence une nouvelle branche de release à partir de la branche develop et met à jour les versions du projet pour refléter la version de la release.
  • Utilisation :
    mvn gitflow:release-start
  • Exemple de workflow :
    1. À la fin du développement, une branche de release est nécessaire pour préparer la prochaine version de production.
    2. La branche est créée à partir de la branche develop, où le développement a lieu.
    3. Cette commande met également à jour les versions dans les fichiers de configuration (ex : pom.xml pour les projets Maven).

2. gitflow:release-finish

  • But : Termine une branche de release en la fusionnant dans les branches main et develop, puis met à jour les versions pour la prochaine phase de développement.
  • Utilisation :
    mvn gitflow:release-finish
  • Exemple de workflow :
    1. Après avoir corrigé les derniers bogues et stabilisé la release, la branche de release est fusionnée dans main.
    2. La version de production est étiquetée sur main et fusionnée dans develop.
    3. La version suivante est ensuite définie pour develop pour la prochaine phase de développement.

3. gitflow:release

  • But : Publie directement un projet sans créer de branche de release. C'est une approche simplifiée où il n'y a pas de branche spécifique de release.
  • Utilisation :
    mvn gitflow:release
  • Exemple d’utilisation : Cette commande est utile dans les projets plus simples où vous souhaitez publier rapidement une version de production sans passer par la gestion de plusieurs branches.

4. gitflow:feature-start

  • But : Crée une nouvelle branche de feature (fonctionnalité) à partir de la branche develop pour travailler sur une nouvelle fonctionnalité.
  • Utilisation :
    mvn gitflow:feature-start
  • Exemple de workflow :
    1. Une nouvelle fonctionnalité doit être développée.
    2. Une branche de fonctionnalité (par exemple feature/module-catalogue) est créée.
    3. Le développement de la fonctionnalité est isolé dans cette branche jusqu'à son achèvement.

5. gitflow:feature-finish

  • But : Termine une branche de fonctionnalité en la fusionnant dans la branche develop.
  • Utilisation :
    mvn gitflow:feature-finish
  • Exemple de workflow :
    1. Une fois que la fonctionnalité est terminée et validée, elle est fusionnée dans la branche develop.
    2. La branche de fonctionnalité peut ensuite être supprimée, puisque tout le code est intégré dans develop.

6. gitflow:hotfix-start

  • But : Crée une branche de hotfix à partir de main pour corriger un problème urgent en production et met à jour les versions pour la correction.
  • Utilisation :
    mvn gitflow:hotfix-start
  • Exemple de workflow :
    1. Un bug urgent en production nécessite une correction rapide.
    2. Une branche hotfix est créée à partir de la branche main pour résoudre ce problème, souvent avec une incrémentation de version mineure (ex : v1.0.1).

7. gitflow:hotfix-finish

  • But : Termine une branche de hotfix en la fusionnant dans main et develop, tout en mettant à jour les versions.
  • Utilisation :
    mvn gitflow:hotfix-finish
  • Exemple de workflow :
    1. Une fois la correction effectuée, elle est fusionnée dans main et taguée pour indiquer la version corrigée.
    2. Ensuite, la correction est également fusionnée dans develop pour être incluse dans les futures versions.

8. gitflow:support-start

  • But : Crée une branche de support à partir d'un tag de production, souvent pour assurer la maintenance de versions anciennes.
  • Utilisation :
    mvn gitflow:support-start
  • Exemple de workflow :
    1. Lorsqu'une version plus ancienne du projet nécessite un support ou des corrections, une branche de support peut être créée à partir de cette version (ex : support/1.x).
    2. Cela permet de continuer à travailler sur la version en production tout en ayant des versions plus récentes en parallèle sur main et develop.

9. gitflow:version-update

  • But : Met à jour la version du projet sur une branche de release ou de support, et peut également créer un tag et pousser les modifications vers le dépôt distant.
  • Utilisation :
    mvn gitflow:version-update
  • Exemple de workflow :
    1. Lorsque vous souhaitez modifier la version actuelle du projet (par exemple, mise à jour de version mineure ou majeure).
    2. Vous pouvez également utiliser cette commande pour étiqueter une version avant de la publier.