J'ai utilisé git flow
pendant un certain temps maintenant. Je suis curieux d'apprendre un cas d'utilisation spécifique.
Pour l'un de mes projets, j'ai un ticket pour une nouvelle fonctionnalité de site Web. Ce ticket dépend de nombreuses sous-tâches. Je souhaite créer une branche de fonctionnalité pour le ticket principal, puis pour chaque sous-tâche, créer une branche de fonctionnalité à partir de la branche principale.
Supposons que j'ai un ticket PROJ-500 et que je crée une branche correspondante.
git flow feature start PROJ-500
Ensuite, je veux intégrer les billets PROJ-501
à travers PROJ-515
en PROJ-500
_ avant d’intégrer le tout dans develop
. Y at-il un moyen pour moi de faire quelque chose comme
git flow feature start PROJ-511 -b PROJ-500
Ensuite, ces sous-tâches sont terminées et lorsque leur fonction est terminée, la branche est fusionnée dans PROJ-500
.
git flow feature finish PROJ-511
La commande ci-dessus fusionnerait PROJ-511
en PROJ-500
Et une fois que toutes les sous-tâches sont terminées, alors PROJ-500
sera terminé et fusionné dans develop
.
De cette façon, la nouvelle fonctionnalité du site Web est intégrée au développement en tant qu'unité unique plutôt que fragmentée.
Vous pouvez créer une branche de sous-fonctionnalité via
git flow feature start PROJ-511 feature/PROJ-500
Mais vous ne pouvez pas utiliser l'outil GitFlow pour fusionner la branche dans la branche principale, car si vous le faites
git flow feature finish PROJ-511
la fonctionnalité sera fusionnée dans develop
. Les sous-fonctions Ergo ne sont pas prises en charge , vous devez le faire manuellement.
Alternatives: L'exigence n'est cependant pas nouvelle. Il existe un numéro ouvert ainsi qu'un projet fork prétendant prendre en charge la finition des fonctionnalités dans des branches autres que develop
. J'ai également trouvé un demande d'extraction avec une implémentation de cette fonctionnalité. Vous voudrez peut-être essayer cette modification et voir si vous en êtes satisfait.
Si j'ai bien compris, Gitflow est assez abandonné.
gitflow-avh la remplace et offre cette fonctionnalité (voir https://github.com/petervanderdoes/gitflow#creating-featurereleasehotfixsupport-branches) ).
Je viens de l'essayer et cela fonctionne bien pour moi.
git flow feature start PROJ-511 feature/PROJ-500
git flow feature finish PROJ-511
PROJ-511 a été fusionné avec feature/PROJ-500.
Comme déjà mentionné, nous pouvons commencer une nouvelle fonctionnalité en utilisant n'importe quelle branche de base avec
git flow feature start PROJ-511 feature/PROJ-500
Et pour terminer la sous-fonctionnalité, nous pouvons changer temporairement la configuration de Git Flow afin d’utiliser notre branche de fonctionnalité au lieu de develop
:
git flow config set develop feature/PROJ-500 && git flow feature finish PROJ-511
De cette façon, git flow exécute toutes les commandes et vérifications de cohérence. Enfin, pour restaurer la configuration, nous pouvons exécuter
git flow config set develop develop
Je ne pense pas qu'il existe une méthode pour cela dans git flow, mais c'est assez simple avec juste git.
git checkout PROJ-500
git checkout -b PROJ-511
...do your PROJ-511 work...
git checkout PROJ-500
git merge PROJ-511
git branch -d PROJ-511