Схема работы с git и dev-сервером. Что посоветуете?

Всем привет!

Что имеется:

1) репозиторий на github в котором две ветки: main и develop. Вся разработка ведется на develop (под каждую задачу создается отдельная ветка и потом сливается с develop);
2) сервер production;
3) сервер staging.

После мержа с develop изменения отправляются на staging сервер где происходит тестирование нового функционала. После тестирования develop сливается в main и всё улетает в production. Тут всё ок, такая схема более чем устраивает.

Проблемы начали возникать когда появился новый разработчик и в прод стали попадать задачи которые еще не протестированы на staging сервере.

Подскажите, как тут быть? В общих словах, схема должна быть такой:

1) основная рабочая ветка - develop
2) каждый разработчик делает ветку от develop под свою задачу
3) после завершения работ над задачей она должна оказаться на staging-сервере для тестирования и, либо будет закрыта, либо отправится на доработку
4) когда несколько задач будут закрыты, нужно каким-то образом слить их в main, но исключив незавершенные задачи

С ветки main настроен автодеплой на production сервер, а с ветки develop - на сервер staging
  • Вопрос задан
  • 432 просмотра
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Проблемы начали возникать когда появился новый разработчик и в прод стали попадать задачи которые еще не протестированы на staging сервере.

Видимо нужно запретить push в main и разрешить мержить в main только через PR-ы.
Делается это в настройках репозитория. Branches-> add branch protection rule
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SeaInside
@SeaInside
15 лет пилю все эти штуки
Кажется, вопросу нужно решение :)
TLDR: Вопрос решается простым действием - ветвиться от main, а не от develop.

Подробное объяснение с примером можно найти внутри комментариев к ответу Василия Банникова.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы