У меня есть ЦЕНТРАЛЬНЫЙ голый репозиторий, в котором есть три репозитория разработчиков, которые обычно извлекают и отправляют в него.
У меня также есть два других репозитория, которые загружаются из голого репозитория CENTRAL: один — это рабочий сервер, а другой — тестовый/этапный сервер, каждый из которых извлекает данные из своей соответствующей ветки.
Сценарий таков: у меня есть скрипт post-update
ловушки в ЦЕНТРАЛЬНОМ репозитории, который автоматически получает доступ к тестовому и живому репозиториям и запускает команду pull для каждого из них. Это обновляет как тестовые, так и живые серверы, все в зависимости от того, в какой ветке есть новые коммиты. Все это прекрасно работает.
Проблема заключается в следующем: могут быть случаи, когда в чрезвычайной ситуации файлы могут быть обновлены непосредственно на сервере (через ftp или как-то еще), и последующий сценарий ЦЕНТРАЛЬНОГО обновления не будет работать, поскольку возникнут конфликты слияния/перезаписи. Избежать этого сценария невозможно, и он неизбежен.
Я бы хотел, чтобы произошло следующее: я хочу, чтобы запросы с рабочего и тестового сайтов всегда перезаписывались/объединялись при получении. Всегда. Эти репозитории будут доступны только для извлечения, поскольку они не предназначены для разработки.
Во всех моих исследованиях я не смог найти хорошего решения, чтобы по запросу всегда принудительно перезаписывать локальные файлы. Это вообще возможно? Если это так, то это был бы отличный сценарий развития.