En utilisant gitflow, lors de la création d'une release-1.0.0
branche et de sa fusion avec les deux master
et develop
, les deux branches auront un commit manquant:
master
n'aura pas le commit oùrelease-1.0.0
était fusionnerdevelop
develop
n'aura pas le commit oùrelease-1.0.0
était fusionnermaster
Au lieu de cela, après avoir hotfix-1.0.1
été créé et fusionné master
, lors de sa fusion develop
, les validations à fusionner incluront la validation précédente où a release-1.0.0
été fusionné master
; il ressemblera à ceci:
User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.
* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug
Si cela vous semble confus, vous pouvez facilement remarquer ce everytie que vous voyez develop
est généralement quelques commits derrière master
(même si développer, théoriquement, devrait seulement être en avance car il est la branche principale. Ces commits sont des fusions de release-x.x.x
la master
).
Comment cela devrait-il être géré pour maintenir une histoire propre?
Réponses:
Je pense qu'une bonne approche est d'éviter d'avoir deux branches "principales", master et develop sont en quelque sorte redondantes. C'est expliqué en détail ici , marqué
cactus-flow
par l'auteur.Certains points ressortent par opposition à git-flow:
Pour moi, le dernier est important, car après avoir utilisé git-flow pendant une longue période, je ne vois pas encore ce qui est utile à propos des
--no-ff
fusions.À mon humble avis, c'est votre grosse erreur. Il n'y a aucune raison pour que vous vous en teniez autant que possible à Git-Flow. Il peut être utilisé dans des milliers de projets mais cela n'affecte pas le vôtre, ne le rend pas bon.
Git-flow est un bon point de départ, mais vous devriez penser à l'adapter à vos outils et à votre flux de travail plutôt que l'inverse.
la source