Concordo totalmente com @Mot.
É bom ouvir as mesmas perguntas.
Nossa equipe também foi procurada por mais modelos de ramificação universal do que de sucesso . Ou seja, como @Mot mencionado acima - a idéia principal é evitar a introdução de repositórios extras para suportar ramos release- * em repositório * .git separado, pois isso é feito, por exemplo, por kernel.org para lançamentos estáveis. Mas kernel.org faz isso para minimizar os tamanhos baixados, eu acho.
Para mim, parece que é mais limpo ter o master como linha principal para desenvolver .
Além disso, existem alguns conflitos no lançamento- * modelo de mesclagem para masterizar e marcá-lo posteriormente com a ideia
usar um script de gancho Git para construir e distribuir automaticamente nosso software para nossos servidores de produção sempre que houver um commit no master
porque o acabamento (mesclagem e marcação) não é uma transação atômica:
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2
e se o git hook começar a compilar com suporte de versão automática:
$git describe --tags --long >.ver
então uma versão errada pode ser construída para:
$ git merge --no-ff release-1.2
Eu sei que o controle de versão em Bem - sucedido introduz algum processo de versão bump,
mas não é automático.
Então, para resumir - as principais diferenças que introduzimos no modelo de branch para lançamentos- * mesclagem e marcação são: - marcar o lançamento ao criar seu branch - manter o branch do lançamento para permitir sua manutenção no futuro