Используя git , вы можете использовать следующий подход:
В вашем репозитории git могут быть следующие ветки. Каждая ветвь исправлений содержит выпуск функций, который необходимо поддерживать.
master - version: 3.0.0 (latest release)
\
dev - version: 4.0.0 (next release)
|\
| hotfix-1.x - version: 1.0.1 (current hotfix 1.x)
\
| hotfix-2.x - version: 2.0.1 (current hotfix 2.x)
\
hotfix-3.x - version: 3.0.1 (current hotfix 3.x)
Исправления:
Исправления сделаны в hotfix-1.x и объединены «вверх» в hotfix-2.x и оттуда в hotfix-3.x.
hotfix-1.x -> hotfix-2.x -> hotfix-3.x ...
Исправления также могут быть перенесены с помощью команды git cherry-pick из hotfix-3.x в hotfix-1.x (при необходимости). С помощью команды cherry-pick можно выбрать один коммит и применить его в другой ветке. Git также будет обнаруживать перемещенные и переименованные файлы и по-прежнему корректно применять изменения.
Вы также можете добавить ветки релизов параллельно ветвям исправлений, чтобы подготовить выпуски в этих ветвях (опущено для этого примера). Это полезно, когда вы не хотите блокировать ветви исправлений для новых коммитов. Пожалуйста, проверьте gitflow , если вы хотите узнать больше о деталях исправлений и веток релиза.
Релизы функций:
Новые функции основаны на ветке dev и объединены обратно в ветку dev после завершения. Новая ветвь исправлений создается для каждого выпуска новой функции.
Шаги:
- Объединить изменения из текущей ветви исправлений в dev
- Слияние ветвей объектов обратно в dev
- Создать новую ветку исправлений из dev
- Релиз от новое исправление ветка
- Слияние с мастером
Примечания:
Я думаю, что основная ветвь больше не очень важна, когда вы решаете оставить свои ветки исправлений. Я полагаю, что общая схема gitflow работает таким образом, что вы удаляете свои ветви исправлений и выпускаете ветви, как только закончите. Все ваши релизы должны быть помечены и поэтому доступны.