web-dev-qa-db-fra.com

Git flow - crée une branche par rapport à une autre branche

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.

78
pymarco

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.

102
kriegaex

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.

24
Tony Chemit

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 
9
César

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
8
Derek S