Git Flow
Features, releases et hotfixes sans l'extension git-flow, avec la même configuration.
Gitlo applique le modèle Git Flow avec des commandes git ordinaires. Il lit et écrit la même configuration que
l’extension git-flow (gitflow.branch.* et gitflow.prefix.* dans .git/config), ce qui permet d’utiliser
l’une ou l’autre sur le même dépôt.
Initialiser
Cliquez sur le bouton Flow de la barre d’outils, ou lancez Flow : initialiser / configurer Git Flow… depuis la palette.
Choisissez la branche de production (main ou master), la branche de développement (develop), les préfixes
(feature/, release/, hotfix/, bugfix/, support/) et le préfixe de tag (par exemple v).
Démarrer une branche
Lancez Flow : démarrer une feature / une release / un hotfix….
- Pour une release ou un hotfix, Gitlo propose la version suivante d’après le dernier tag.
- Une seule release peut être en cours à la fois, comme le prévoit Git Flow.
Publier
Flow : publier la branche courante pousse la branche (push -u), puis propose d’ouvrir une pull request
(vers develop pour une feature).
Terminer
Flow : terminer la branche courante… ouvre une fenêtre qui affiche à l’avance les commandes exactes qui seront exécutées.
| Branche | Ce que fait « Terminer » |
|---|---|
| feature / bugfix | merge --no-ff (ou squash puis commit) dans develop |
| release | merge dans la branche de production, tag annoté, puis merge du tag dans develop |
| hotfix | comme une release, mais le tag est fusionné dans la release en cours s’il y en a une, sinon dans develop |
Options : terminer par une pull request plutôt qu’en local, squash, suppression de la branche locale et distante, push.
Le tag est signé si commit.gpgsign est activé.
Vérifications
Avant de commencer, Gitlo vérifie que la copie de travail est propre, qu’aucune opération n’est en cours et que
les branches ne sont pas en retard sur leur distant. Ces trois points sont bloquants. Les conflits prévisibles sont
annoncés à l’avance (git merge-tree), sans bloquer.
Conflit et annulation
- Si un merge produit un conflit, résolvez-le puis cliquez sur Continuer dans le bandeau : la finalisation reprend là où elle s’était arrêtée (Flow : reprendre la finalisation).
- Une finalisation complète faite en local s’annule en une seule fois avec Ctrl Z, tag compris. En revanche, une finalisation reprise après un conflit, ou qui a fait un push, ne peut pas être annulée.