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 :
- À la fin du développement, une branche de release est nécessaire pour préparer la prochaine version de production.
- La branche est créée à partir de la branche
develop
, où le développement a lieu. - 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
etdevelop
, puis met à jour les versions pour la prochaine phase de développement. - Utilisation :
mvn gitflow:release-finish
- Exemple de workflow :
- Après avoir corrigé les derniers bogues et stabilisé la release, la branche de release est fusionnée dans
main
. - La version de production est étiquetée sur
main
et fusionnée dansdevelop
. - La version suivante est ensuite définie pour
develop
pour la prochaine phase de développement.
- Après avoir corrigé les derniers bogues et stabilisé la release, la branche de release est fusionnée dans
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 :
- Une nouvelle fonctionnalité doit être développée.
- Une branche de fonctionnalité (par exemple
feature/module-catalogue
) est créée. - 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 :
- Une fois que la fonctionnalité est terminée et validée, elle est fusionnée dans la branche
develop
. - La branche de fonctionnalité peut ensuite être supprimée, puisque tout le code est intégré dans
develop
.
- Une fois que la fonctionnalité est terminée et validée, elle est fusionnée dans la branche
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 :
- Un bug urgent en production nécessite une correction rapide.
- Une branche
hotfix
est créée à partir de la branchemain
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
etdevelop
, tout en mettant à jour les versions. - Utilisation :
mvn gitflow:hotfix-finish
- Exemple de workflow :
- Une fois la correction effectuée, elle est fusionnée dans
main
et taguée pour indiquer la version corrigée. - Ensuite, la correction est également fusionnée dans
develop
pour être incluse dans les futures versions.
- Une fois la correction effectuée, elle est fusionnée dans
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 :
- 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
). - Cela permet de continuer à travailler sur la version en production tout en ayant des versions plus récentes en parallèle sur
main
etdevelop
.
- 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 :
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 :
- Lorsque vous souhaitez modifier la version actuelle du projet (par exemple, mise à jour de version mineure ou majeure).
- Vous pouvez également utiliser cette commande pour étiqueter une version avant de la publier.