Несколько репозиториев GitHub против ветвления для нескольких сред

Это может быть очень начальный вопрос, но я работаю над большим производственным веб-сайтом в среде запуска. Я только недавно начал использовать Heroku, Github и Ruby on Rails, потому что мне нужна гораздо большая гибкость и контроль версий по сравнению с локальным внесением изменений и загрузкой на сервер.

Мой вопрос, который может быть очень очевидным, заключается в том, следует ли мне использовать отдельный репозиторий для каждой среды (разработка, тестирование, подготовка, производство и т. д.) или только основной репозиторий и ветки для обработки новых функций.

Моя первоначальная мысль - создать несколько репозиториев. Например, если я добавлю новую функцию, такую как загрузчик изображений, я буду использовать код из репозитория разработки. Внесите изменения и загрузите их вместе с коммитами, чтобы отслеживать небольшие изменения. После того, как я протестировал его локально, я хотел бы загрузить его в тестовый репозиторий с помощью одной фиксации, в которой перечислены добавленные функции (например, «Добавлено средство загрузки изображений на страницу учетной записи»).

Я думаю, что это позволит микроуправлять коммитами в среде разработки, в то время как коммиты среды тестирования будут больше сосредоточены на исправлении ошибок и т. д.

На мой взгляд, это имеет смысл, потому что по мере продвижения в средах вы удаляете посторонние коммиты и сосредотачиваетесь на том, что необходимо для каждой среды. Я также мог видеть, как этого можно добиться с помощью ветвей, поэтому я искал несколько советов о том, как с этим справиться. Плюсы и минусы, личные примеры и т.д.

Я видел пару других связанных вопросов, но ни один из них, похоже, не затрагивал те же проблемы, которые были у меня.

Заранее спасибо!

-Мэтт


person ohmatt    schedule 13.04.2013    source источник


Ответы (1)


Использование разных репозиториев имеет смысл с распределенной системой контроля версий, и я упоминаю этот аспект публикации (push/pull) в:

Одним из сложных аспектов управления различными средами являются файлы конфигурации, которые могут содержать различные значения для каждой среды.

Для этого я рекомендую драйвер для подбора содержимого:

фильтр содержимого

Это помогает создавать фактические файлы конфигурации с текущими значениями в них, в зависимости от текущей среды развертывания.

person VonC    schedule 13.04.2013