Полностью согласен с @Mot.
Приятно слышать одни и те же вопросы.
Наша команда также искала более универсальную модель ветвления, чем успешную . Т.е., как упомянул @Mot выше, основная идея состоит в том, чтобы избежать введения дополнительных репозиториев для поддержки веток release- * в отдельном репозитории * .git, как это, например, делается kernel.org для стабильных выпусков. Но kernel.org делает это, я думаю, для минимизации загружаемых размеров.
Мне кажется, что лучше иметь master в качестве основного направления разработки .
Также есть некоторые конфликты в модели слияния релиза *, которую нужно освоить, а затем пометить ее идеей для
использовать сценарий ловушки Git для автоматической сборки и развертывания нашего программного обеспечения на наших производственных серверах каждый раз, когда на главном сервере выполнялась фиксация
причина завершения (слияние и маркировка) не является атомарной транзакцией:
$ 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
и если git hook запускает сборку с поддержкой автоматического управления версиями:
$git describe --tags --long >.ver
тогда ошибочная версия может быть построена для:
$ git merge --no-ff release-1.2
Я знаю, что управление версиями в Successfull one вводит некоторый процесс bump-version,
но он не автоматический.
Итак, подведем итог - ключевые отличия, которые мы вводим в модель ветвления для * слияния и тегирования релизов: - тегирование релиза при создании его ветки - сохранение ветки релиза, чтобы обеспечить их поддержку в будущем