Nous utilisons un Un modèle de ramification GIT réussie par Vincent Driessen pour notre modèle de ramification. Tout va bien mais je n'ai pas vraiment vu un problème particulier élevé. P>
De ce que j'ai compris, lorsqu'une nouvelle fonctionnalité est requise, vous branche du développement code> et créez une nouvelle fonctionnalité Et si un développeur apporte une fonctionnalité, puis fusionne cette fonctionnalité à Comment aller à ce sujet? P>
merci p> (code> branche. Vous travaillerez à ce sujet et lorsque vous avez terminé, vous fusionneriez cette succursale dans la branche
Développement Code>. p>
Développement Code> Seulement être découvert qu'il existe des bugs dans le code de fonctionnalité. Où devrait-il être corrigé? Si un nouveau
correction code> /
BUCKFIX code> est démarré à partir du développement et le code est fixé là-bas? Je ne peux pas voir une autre façon. P>
4 Réponses :
Si cette branche de fonctionnalité est publique (c'est-à-dire une reproduction à distance clonée / utilisée par d'autres), il est préférable de faire une nouvelle branche et d'isoler le débogage dans ladite branche de fixation. L'idée reste à ne pas enregistrer directement les commits de débogage intermédiaires dans
(au lieu d'essayer de rebaser ' fonction code>' 'succursale sur "
Développer code>" branche "). p>
Développer la succursale code>, mais pour enregistrer uniquement le commit résultant qui corrigera le bogue introduit par
Fonction CODE> Branche Fusionner premier endroit. p>
Il suffit de créer une branche (ou utilisez l'ancien, fusionné L'utilisation de l'ancienne branche / Créer une nouvelle succursale est exactement la même --- Vous ne pouvez pas nommer lequel est lequel après s'est fusionné. p> fonction code> branche) et réparez-le là-bas. P>
Rappelez-vous qu'un modèle est juste un modèle - il est de vous donner une structure qui vous rend plus efficace, et non pas suivre aveuglément un ensemble de règles. Cela signifie que vous devriez vous sentir libre de modifier les choses et comprendre ce qui fonctionne dans votre situation, car il peut ne pas fonctionner dans toutes les situations. P>
Je pense que vous avez le choix dans cette situation: p>
Lequel vous choisissez dépend de facteurs tels que: p>
La différence entre une branche de fonctionnalité et la branche bugfix est pas important du point de vue de Git. Il importe que si vous utilisez ces étiquettes pour la documentation interne ou d'autres fins de vérification (par exemple pour garder une trace de ce qui est visible pour les utilisateurs externes). P>
Résister à la tentation de travailler directement la branche de développement, même si vous pensez que le bugfix sera très rapide -. Rien n'est jamais tout à fait aussi simple que cela puisse paraître, et vous vous donner un mal de tête plus tard, si quelque chose va mal p >
Rugueux représentation visuelle de votre choix: p>
p>
Que diriez-vous de Trouver le commit Cela a introduit le bogue et crée une nouvelle branche enracinée là-bas ? Avec cette approche: p>
+1000. Je pense aussi que c'est l'approche la plus souhaitable. Cela conduit à une histoire de validation très claire. De côté opposé, la cueillette de cerisier est l'approche la plus opaque puisqu'elle se cache complètement où le bogue a été introduit et où il a été corrigé. Notez également que Git Bisect aide beaucoup à trouver le COMMIT qui a introduit le bogue. Définitivement une approche hautement suggérée.
Je semble avoir créé un duplicata de votre question, cependant, dans ma question, j'ai pris une approche de la fourniture de commandes à créer un représentant expérimental pour tester les concepts: Stackoverflow.com/questions/32244693/... a > Voulez-vous vous déranger si j'adressiez votre question avec l'exemple de repo et voyez comment les réponses suggérées seront-elles appliquées sur ce repo et avec quel résultat?