Mantendo um histórico limpo do git ao usar o gitflow - consolidação imersa no desenvolvimento

9

Usando gitflow, ao criar uma release-1.0.0filial e fundindo-lo para ambos mastere develop, ambos os ramos terá uma desaparecidos cometer:

  • masternão terá o commit onde release-1.0.0foi mesclardevelop
  • developnão terá o commit onde release-1.0.0foi mesclarmaster

Em vez disso, depois de hotfix-1.0.1criado e mesclado para master, quando estiver sendo mesclado develop, as confirmações para mesclagem incluirão o commit anterior no qual release-1.0.0foi 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ê developestá geralmente atrasado em alguns commits master(embora o desenvolvimento, teoricamente, esteja à frente, já que é o ramo principal. Esses commits são mesclados de release-x.x.xpara master).

Como isso deve ser tratado para manter um histórico limpo?

Christopher Francisco
fonte
Por favor, defina "histórico limpo".
Jace Browning #
3
Quer uma história limpa? Não use gitflow. Por definição, polui sua história. Em vez disso, pense no que você realmente precisa e crie um fluxo de trabalho em torno disso, para que ele realmente se encaixe na maneira como você deseja trabalhar.
FP
11
A mesclagem a ser masterizada será uma "cópia", sem necessidade de mesclá-la para se desenvolver. Faça correções a partir do ramo da versão anterior, não mestre, e mescle-as a partir daí, e você não terá o problema. O Master não está adicionando muito ao modelo, então você pode descartá-lo completamente, IMO.
axl
@axl Entendo o que você quer dizer, mas estou tentando seguir o gitflow o mais próximo possível da documentação. Eu prefiro não fazer qualquer tipo de "hackz" porque desde gitflow já é adotada por muitos desenvolvedores, que já deve ter uma solução para esta coisa simples
Christopher Francisco
Existem várias discussões sobre como resolver vários problemas com o GitFlow no GitHub e em outros lugares. Às vezes simplesmente não há uma bala de prata.
axl

Respostas:

4

Eu acho que uma boa abordagem é evitar ter dois ramos "principais", dominar e desenvolver são meio redundantes. É explicado minuciosamente aqui , marcado cactus-flowpelo autor.

Alguns pontos se destacam em oposição ao git-flow:

  • Apenas um ramo principal
  • Apenas mesclagens de avanço rápido

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-ffmesclagens.

Estou tentando seguir o gitflow o mais próximo possível da documentação. Prefiro não fazer nenhum tipo de "hackz" porque, como o gitflow já é adotado por muitos desenvolvedores, eles já devem ter uma solução para essa coisa simples

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.

Sergio Basurco
fonte