Dans le, communément appelé, les correctifs du modèle Git-flow vont dans leur hotfix-*
branche spécifique et les petits correctifs d'intégration juste avant la sortie vont dans la release-*
branche. Les corrections de bugs généraux de la version précédente ne semblent pas avoir leur place.
Où devraient-ils apparaître? Doivent-ils être dans leur propre bug-*
branche de ramification develop
(tout comme les feature
branches)?
feature-*
succursales? Un correctif sur un comportement erroné peut-il être considéré comme une fonctionnalité?master
,develop
,release-*
ouhotfix-*
est une branche de fonction, de sorte que vous pouvez utiliser un préfixe que vous aimez et utiliser un préfixe différent pour les bugs. En outre, quelle est la différence entre un comportement erroné qui fonctionne comme spécifié et un comportement erroné qui s'écarte de la spécification? Dans les deux cas, il s'agit d'un comportement erroné, mais seul le dernier est un bogue.Réponses:
La réponse courte: Oui, les branches pour les corrections de bogues qui entrent dans une prochaine version prévue devraient être dans les branches de fonctionnalités. La façon dont vous nommez les branches de fonctionnalité ou ces branches pour les corrections de bogues dépend de vous et des normes de votre équipe, mais elles doivent être traitées de manière identique si vous suivez Gitflow.
Le commentaire de Bart van Ingen Schenau soulève un bon point.
Gitflow a cinq types de succursales:
master
,develop
, branches de correctif (préfixéeshotfix-
), des branches de libération (préfixéesrelease-
, et les branches fonctionnelles La.master
Et lesdevelop
branches sont des branches de longue durée et vous ne commettez pas directement les Les.release-
Branches sont faites pour tracer une ligne pour une version particulière, puis prend en charge les correctifs de bogues entre l'identification de la prochaine version et la version. Leshotfix-
branches sont spécifiquement destinées aux versions critiques hors cycle en production. Lesfeature-
branches sont destinées au développement de fonctionnalités individuelles pour une version future.En venant de milieux où sont utilisés et PRs de côté d'un développeur individuel engageant à une branche de fonction, rien ne doit être engagée directement dans
master
,develop
ou une branche de sortie. Cela garantit que chaque changement est révisé par le code, tout en garantissant une couverture de test appropriée et la réussite des tests dans un environnement CI avant que les changements ne soient effectués. Je n'ai aucun problème à valider des correctifs ou des modifications de bogues avant la publication directement dans la branche de publication, puis à les insérer dans le développement, puis dans les branches de fonctionnalités.Dans votre cas particulier, une
release-
succursale n'est pas un endroit approprié. Le logiciel a déjà été publié et est en coursmaster
. Une fois qu'une version est fusionnée dans master et y est étiquetée, la branche de publication de cette version particulière a dépassé son objectif et n'a plus nécessairement besoin d'exister. Si vous êtes actif dans le nettoyage de vos succursales (ce que je pense que tout le monde devrait être), ce n'est même pas une option.Si votre correctif n'est pas critique, une branche de correctifs ne semble pas convenir non plus. Le but d'une branche de correctifs est de permettre à quelqu'un d'obtenir des changements critiques dans la production très rapidement sans interférer avec le développement en cours. Leur utilisation devrait être l'exception plutôt que la norme pour une équipe de développement. En général, les correctifs critiques devraient être un cas exceptionnel.
La seule chose qui reste est une branche de fonctionnalité. Notez que la section de la page liée à la question sur les branches de fonctionnalité dit même que les branches de fonctionnalité sont "parfois appelées branches de rubrique". Si votre modification cible une version à venir et ne répond pas aux critères d'un correctif, elle doit se trouver dans l'une de ces branches.
la source
develop
, non trouvé entre le moment où il a été introduit et la création de la branche de publication, et / ou que votre branche de publication existe depuis longtemps. Simplement, cependant, je crois que le seul choix est une sélection (je suggérerais une demande de correction et d'extraction dans la branche de publication, une fusion dans la branche de publication et une sélection de cerise dans le développement via une demande d'extraction).S'il s'agit d'une seule validation, effectuez simplement une validation bien identifiée et poussez-la au-dessus de la branche de développement, sinon créez une branche de fonctionnalité.
Il y a aussi un commentaire de l'auteur de git-flow disant exactement ce que vous demandez: Branches de correction de bogues manquantes # 24
la source