На этот вопрос нет универсально верного ответа, потому что он основан на субъективной статье, которая почти десять лет назад предложила использовать только две стратегии ветвления. Обратите внимание, что в то время SVN был еще королем, и создание там было дорогостоящим - поэтому не многие люди думали об использовании большого количества веток только потому, что они этого хотели (но некоторые это делали).
С тех пор многое изменилось, и многие команды приняли другие стратегии - например, git flow модель ветвления, которая де-факто стала одним из отраслевых стандартов. В этой стратегии все разветвления происходят из ветви development
, тогда как master
используется просто как стабильная резервная копия.
В любом случае, это ^^^ просто для того, чтобы объяснить, что упомянутая статья не закон, а скорее авторское видение. Статья может быть неправильной или неполной (ну, она неполная, потому что она не включает git flow
, что было предложено годом ранее). Если вы видите там проблему - это действительно может быть проблема, а не ваше отсутствие понимания.
Отвечая на вопрос:
При использовании ветвления по стратегии правила, какова цель использования основной ветки? Мне кажется, что основная ветвь имеет смысл только для программных продуктов, которые имеют одну версию выпуска ...
Да, использование master
branch активно наиболее целесообразно для продуктов с одной версией выпуска. Действительно, «программное обеспечение как услуга» (скажем, «веб-сайт») - лучшая модель для этого. Эта стратегия ветвления нуждается в улучшении, если в вашей модели продукта могут быть разные клиенты на разных версиях программного обеспечения одновременно. В этом случае вам нужно будет придумать более сложную схему.
Однако, даже с параллельными версиями модель master
по-прежнему необходима. Это стабильная ветка со всеми функциями, которые вы когда-либо разрабатывали. Его использование редко , но важно - оно служит отправной точкой для новой версии, когда менеджеры по продукту решают начать разработку нового набора функций. И это также причина, по которой ваша стратегия должна требовать регулярного слияния выпущенных веток с master
- предположительно после каждого выпуска. Вопреки картинке, слияние с master
не закончило бы жизнь этих ветвей. Скорее было бы синхронизацией улучшений, чтобы master
оставался актуальным и продолжал быть подходящим источником для дальнейших итераций разработки.