Задать вопрос

Как загрузить на production определенные коммиты?

Здравствуйте.
Может быть я неправильно сформулировал заголовок, т.к. не совсем понимаю, как это должно работать.
Есть команда разработчиков. У каждого своя ветка для разработки. Кроме того есть две ветки - ветка для теста и ветка для боевого сервера. Как правильно организовать структуру, чтобы на боевое сервер попадали только проверенные комиты. Например, на тестовый сервер вчера закомитили изменения, их проверили. После этого были еще комиты, которые не были проверены. Потом снова были комиты, но их проверили. Как на боевой сервер загрузить только проверенные комиты? Или же я не правильно представляю работу команды с системой контроля версий? Всем спасибо за ответы.
  • Вопрос задан
  • 329 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 2
@vayho
Проблема чисто организационная, вы должны запретить программистам вообще лезть в тестовую и продакшн ветки. Сливать что-то туда нужно дать права только конкретному человеку который отвечает за релизы(или например DevOps).
Приведу пример как это устроено у нас:
1. Три ветки, дев, тест, прод. В дев могут пушить все кто что то делают, так как у нас разработчиков не много то одной дев ветки хватает. В тест коммиты которые сейчас тестируются, в прод то что крутится в лайв версии.
2. Задача настроенная в CI мержит изменения из дев в тест. Запуск задачи происходит вручную(т.е. процесс полностью контролируемый и в тест не попадает ничего что не должно туда попасть).
3. После тестирования изменений тест мержится в прод, на ветку ставится тег с текущей версией(по спецификации semver.org ) и начинается новая итерация разработки.

Для вас такой механизм может оказаться слишком простым(если разработчиков > 10), поэтому возможно стоит сделать несколько тестовых веток под каждую из фич и мержить их в основной тест уже после завершения тестирования этих фич.
Ответ написан
Комментировать
@postgree
Если вам необходимо загрузить именно определенные коммиты, а не слить слепок на определенный момент, то можно просто сформировать патчи, если у вас на проде измененные файлы предыдущей ревизии. Почитайте про "git format-patch". Имеет смысл использовать только в том случае, когда у вас есть срочные изменения, секюрити фиксы, либо либо исправления ошибок в бизнес правилах.
Мерж может не помочь в том случае, если вы перед этим коммитили не до конца проверенные файлы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
Ответ написан
Комментировать
@spotifi
У нас тестируются все ветки, а не только ветка тестовая специальная. Это позволяет разработчикам быть в курсе насколько у них готова ветка.

В ветку "мастер" есть доступ только у старших разработчиков.
Эта ветка также тестируется, а если тест проходит успешно, то она же и деплоиться.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы