У нас есть 3 этапа (соответствующие филиалы)
- Тестирование (мастер), менее чувствительная ветвь
- Постановка (постановка), умеренно чувствительная ветвь
- Производство (производство), Самая чувствительная отрасль
- У нас также есть отдельные ветви для каждой реализуемой нами функции (наименее чувствительная ветвь)
Вот как мы решаем слияние с ребазом
- Все ветви (главная, промежуточная, функциональная) перенастроены с производства
- Ветвь объектов всегда объединяется с необходимым этапом
- Функциональная ветвь объединяется в высокочувствительную стадию, только когда этот код стабилен на низко чувствительной стадии
Шаги:
(обновлять копию производства)
git checkout production
git pull --rebase
(всегда перебазировать ветвь объекта при производстве)
git checkout feature-branch
git pull --rebase
git rebase production
(всегда перебазировать ветку тестирования в производственной среде, ветку функций слияния для тестирования разработчиков)
git checkout master
git pull --rebase
git rebase production
git merge feature-branch
(при успешном тестировании разработчика всегда перезагружать промежуточную ветвь в рабочей среде, ветвь функции слияния для принятия пользователем)
git checkout staging
git pull --rebase
git rebase production
git merge feature-branch
(при одобрении при принятии пользователем, включить функциональную ветвь в производство)
git checkout production
git pull --rebase
git merge feature-branch
Для этого могут быть более оптимизированные шаги.
Мы определенно с нетерпением ожидаем услышать о лучшей альтернативе.