Totalmente d'accordo con @Mot.
È bello sentire le stesse domande.
Il nostro team è stato anche cacciato per un modello di ramificazione più universale rispetto a quello di successo . Ad esempio, come menzionato sopra @Mot, l'idea principale è quella di evitare di introdurre repository aggiuntivi per supportare i rami release- * in repository * .git separati, come ad esempio è fatto da kernel.org per le versioni stabili. Ma kernel.org lo fa per ridurre al minimo le dimensioni scaricate, immagino.
Per me sembra che sia più pulito avere il master come linea principale per lo sviluppo .
Inoltre ci sono alcuni conflitti in release- * unire il modello da master e taggarlo successivamente con l'idea a
usa uno script hook Git per creare e distribuire automaticamente il nostro software ai nostri server di produzione ogni volta che c'era un commit sul master
perché la finitura (unione e codifica) non è una transazione atomica:
$ 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 git hook inizia a costruire con il supporto per il controllo automatico delle versioni:
$git describe --tags --long >.ver
allora è possibile costruire una versione sbagliata per:
$ git merge --no-ff release-1.2
So che il controllo delle versioni in Successfull introduce un processo di bump-version
ma non è automatico.
Quindi, per riassumere, le differenze chiave che introduciamo al modello di ramo per i rilasci * l'unione e il tagging sono: - taggare il rilascio sulla creazione del suo ramo - mantenere il ramo del rilascio per abilitarne la manutenzione in futuro