Как реализовать автоматическое обновление работающих проектов?
Есть несколько интернет магазинов, которые созданы на определенной сборке движка с модулями и прочими вкусностями.
Время от времени, находится какой то баг или улучшение функционала. Если вопрос с заготовкой сайта решается просто. Используем репозиторий в GIT и все новые сайты разворачиваются с обновленного дистрибутива.
Как быть с уже существующими сайтами. Не хотелось бы в каждом сайте менять это ручками.
Так же сложности добавляет что магазины из за дизайнов имеют свои "напильники", поэтому хочется что бы каждый "тип" сайта "забирал" с сервера именно свои файлы.
Если "свои файлы" у всех сайтов одинаковые - git submodules. Если разница большая - то разделяйте ветками, где все наследуются от мастера с общими исходниками, но каждая имеет какую-то особенность. Общие изменения вносите в мастере и разливаете по веткам, вручную или автоматически через git hooks, например.
Изначально сделать правильную архитектуру
Нужно выделить общую часть, как можно большую - для всех сайтов. И обновляли бы ее одновременно (или вообще это был бы единый бэкенд для всех).
И уникальные части для каждого сайта.
И зная где именно между ними граница - легко бы обновлялись хоть каждый час.
Гит ничего из этого не решает. Гит лишь базовый инструмент, которым вы можете отслеживать изменения.