Actuellement, je créais une nouvelle branche chaque fois que je devais ajouter une nouvelle fonctionnalité à mon application.
Lorsque ma fonctionnalité est terminée et fonctionnelle, je la fusionne avec la branche principale.
Mais plus tard, lorsque je dois mettre à jour cette fonctionnalité (comme une amélioration), est-il préférable de créer une nouvelle branche ou dois-je rebaser la précédente avec le maître, la mise à jour puis fusionner à nouveau?
Par exemple, j'ai une branche appelée modélisation-membre dans une application Ruby on Rails. Plus tard, je dois ajouter des attributs au modèle membre (qui était créé dans cette branche) .Que dois-je faire? Rebaser cette branche avec le maître, mettre à jour le modèle et le fusionner à nouveau ou simplement créer une nouvelle branche?
Créez une nouvelle branche, car:
Une toute nouvelle branche est moins susceptible d'avoir des conflits de fusion lorsque vous avez terminé et que vous souhaitez la fusionner en maître. Peu de choses sont plus sujettes aux erreurs que la résolution des conflits de fusion.
La fonctionnalité peut avoir subi plusieurs modifications et mises à jour depuis son implémentation d'origine, ce qui rend la branche d'origine totalement obsolète. La seule façon de le mettre à jour est de fusionner master dans la branche de fonctionnalité ... et à ce moment-là, vous dérivez simplement master d'une manière inutilement compliquée.
Ne serait-ce que par souci de simplicité, c'est généralement une bonne idée d'avoir le même flux de travail pour les mises à jour, les corrections de bugs et les nouvelles fonctionnalités. Cela s'applique à la ramification, aux révisions de code, à l'utilisation du suivi des bogues et à peu près tout le reste. La différence entre la mise à jour d'une fonctionnalité existante, l'ajout d'une nouvelle fonctionnalité et la correction d'un bug est souvent subjective de toute façon.
Utilisez une nouvelle branche.
Pour nommer, vous pourriez envisager d'utiliser un format interne qui this_work est une extension ou changer en that_work
Par exemple, vous pouvez nommer la deuxième branche
modeling-member--attributes
avec le - signalant que le nom du nom à gauche est la branche d'origine
Nous nous attaquons à un problème quelque peu similaire en utilisant des numéros de ticket Jira pour les noms de succursales. Parfois, il y a un peu de travail supplémentaire pour le même ticket. Parfois, une modification de la base de données ne pouvait pas être annulée. Dans ces cas, nous utilisons, par exemple, la branche d'origine SEND-123 et la deuxième branche pour être SEND-123a
Si vous souhaitez enregistrer uniquement les validations d'une fusion sur le maître et que vous utilisez github, vous pouvez utiliser "Fork" pour chaque nouvelle fonctionnalité et faire une demande d'extraction et accepter la demande d'extraction après avoir terminé chaque nouvelle fonctionnalité.
Je ne recommande pas de travailler sur les anciennes branches, car vous pouvez avoir des conflits lorsque vous le fusionnez avec le chef de master et bien sûr, il n'est pas nécessaire de le faire ...