Появился один такой, но глобальный вопрос по поводу построения архитектуры git для командной работы 2-х людей над сайтом.
Суть такая, есть сайт у которого имеется рабочая копия (test.example.ru), с которой работают 2 программиста. Они пишут новые фичи и заливают на example-test.ru для тестирования там функционал и если всё ок, это потом перекидывается в продакшн (example.com).
Так вот такой вопрос по поводу архитектуры, как её лучше организовать, чтобы избежать багов и глюков и сделать максимально прозрачной?
У меня такие варианты:
1. Разработчики подключаются к репозиторию тестовой копии сайта, клонируют его и дальше уже работают непосредственно с master веткой, делая commit и push чтобы увидеть изменения и проверить функциональность, в случае, если что-то поломалось в плане функциональности, программист это чинит и делает ещё раз commit, push и вновь проверяет всё ли ок.
— У такого подхода мне видятся несколько сложностей, во-первых вообще никак не используется ветвление, а во вторых, если один из программистов что-то поломал, сам того не подозревая, и залил изменения, то у второго программиста, тестовой копии сайта всё поломается тоже.
2. Сделать 2 тестовых копии сайта (по каждой на разработчика). Тут уже каждый сможет на своё усмотрение ломать, и ветвить как ему заблагорассудится. Но я смутно себе представляю такую архитектуру.
3. Делать ветки, например fix_35 и работать непосредственно с веткой. Но тут вот я не знаю, можно ли как-то дать понять удалённому репозиторию (который работает как hub-live) что нужно на тестовой копии сайта показывать файлы не из master ветки, а из fix_35? Ну и вроде как одновременно при таком раскладе работать не получится.
В общем буду оч признателен, за советы т.к. сам с этим сталкиваюсь впервые и возможно что некоторые или почти все из предложенных мной решений окажутся полнейшим бредом.
P.S. Git настроен по принципу hub-live, как было описано в
этой статье.