Comment dois-je réintégrer un correctif dans une branche de fonctionnalité à l'aide de gitflow?

10

J'ai commencé à utiliser gitflow pour un projet, et j'ai une branche de fonctionnalités exceptionnelle ainsi qu'un correctif nouvellement créé. Par le flux de travail gitflow, le correctif est appliqué à la fois aux branches maître et de développement , mais rien n'est dit ou fait sur les branches de fonctionnalités existantes.

Néanmoins, j'aimerais réintégrer les modifications du correctif dans ma branche de fonctionnalité, qui, autant que je sache, laisse trois options:

  1. N'incorporez pas les changements. Si les modifications étaient nécessaires pour la branche de fonctionnalité, elle aurait dû faire partie de la branche de fonctionnalité.
  2. La fusion se développe à nouveau dans la branche des fonctionnalités. Cela semble suivre au mieux le workflow gitflow, mais entraînerait des commits hors service.
  3. Rebase la branche de fonctionnalité sur develop . Cela préserverait l'ordre de validation, mais le rebasage semble être complètement absent du flux de travail gitflow général.

Quelle est la meilleure pratique ici?


la source
Les branches de fonctionnalités sont généralement censées être de courte durée, c'est une sorte d'odeur SCM que de fusionner les modifications en elles; est-il impossible de simplement terminer (ou stabiliser) la branche de fonctionnalité et la fusionner à nouveau?
Aaronaught
2
@Aaronaught bien que la fonctionnalité n'est pas terminée / ne peut aller nulle part. La situation de base est qu'une fonctionnalité qui met quelques jours à développer a découvert un bogue qui pourrait potentiellement affecter les données de production. Des tests ont été écrits, un correctif appliqué au master / production, mais la fonctionnalité inachevée est toujours rompue par le bug. Suggérez-vous de fusionner une fonctionnalité à moitié terminée dans la ligne principale de développement? Que se passe-t-il si la fonctionnalité ne fonctionne pas?

Réponses:

11

Je ne vois rien de mal à rebaser votre branche de fonctionnalités sur develop pour récupérer les derniers correctifs. En fait, il peut être utile de rebaser fréquemment votre branche de fonctionnalités contre développer , car cela vous permet de garder votre branche «à jour», ce qui facilite la fusion lorsque vous arrivez à ce stade.

Wayne Conrad
la source
Oui: en regardant un peu plus, des preuves circonstancielles - y compris l' annonce de gitflow 0.2 qui a ajouté le rebasage des fonctionnalités - indiquent que le flux de travail de rebase git normal est également le flux de travail gitflow.
2
Intéressant. Je ne peux pas dire que je suis un expert de Gitflow, mais ma compréhension était que les correctifs étaient des engagements singuliers contre le maître, pas les branches, et je les ai simplement choisis pour les développer. En lisant, j'ai pensé que j'avais totalement tort à ce sujet.
jb510