Usando gitflow, ao criar uma release-1.0.0
filial e fundindo-lo para ambos master
e develop
, ambos os ramos terá uma desaparecidos cometer:
master
não terá o commit onderelease-1.0.0
foi mesclardevelop
develop
não terá o commit onderelease-1.0.0
foi mesclarmaster
Em vez disso, depois de hotfix-1.0.1
criado e mesclado para master
, quando estiver sendo mesclado develop
, as confirmações para mesclagem incluirão o commit anterior no qual release-1.0.0
foi mesclado master
; então ficará assim:
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
Se isso parecer confuso, você pode facilmente perceber que tudo o que vê develop
está geralmente atrasado em alguns commits master
(embora o desenvolvimento, teoricamente, só esteja à frente, já que é o ramo principal. Esses commits são mesclados de release-x.x.x
para master
).
Como isso deve ser tratado para manter um histórico limpo?
Respostas:
Eu acho que uma boa abordagem é evitar ter dois ramos "principais", dominar e desenvolver são meio redundantes. É explicado minuciosamente aqui , marcado
cactus-flow
pelo autor.Alguns pontos se destacam em oposição ao git-flow:
Para mim, o último é importante, pois depois de usar o git-flow por um longo tempo, ainda estou para ver o que é útil sobre
--no-ff
mesclagens.IMHO esse é o seu grande erro. Não há razão para você se ater ao fluxo git o máximo possível. Pode ser usado em milhares de projetos, mas isso não afeta o seu, não o torna bom.
O Git-flow é um bom ponto de partida, mas você deve pensar em adaptá-lo às suas ferramentas e fluxo de trabalho, e não o contrário.
fonte