Как заставить git pull перезаписывать все при каждом извлечении?

У меня есть ЦЕНТРАЛЬНЫЙ голый репозиторий, в котором есть три репозитория разработчиков, которые обычно извлекают и отправляют в него.

У меня также есть два других репозитория, которые загружаются из голого репозитория CENTRAL: один — это рабочий сервер, а другой — тестовый/этапный сервер, каждый из которых извлекает данные из своей соответствующей ветки.

Сценарий таков: у меня есть скрипт post-update ловушки в ЦЕНТРАЛЬНОМ репозитории, который автоматически получает доступ к тестовому и живому репозиториям и запускает команду pull для каждого из них. Это обновляет как тестовые, так и живые серверы, все в зависимости от того, в какой ветке есть новые коммиты. Все это прекрасно работает.

Проблема заключается в следующем: могут быть случаи, когда в чрезвычайной ситуации файлы могут быть обновлены непосредственно на сервере (через ftp или как-то еще), и последующий сценарий ЦЕНТРАЛЬНОГО обновления не будет работать, поскольку возникнут конфликты слияния/перезаписи. Избежать этого сценария невозможно, и он неизбежен.

Я бы хотел, чтобы произошло следующее: я хочу, чтобы запросы с рабочего и тестового сайтов всегда перезаписывались/объединялись при получении. Всегда. Эти репозитории будут доступны только для извлечения, поскольку они не предназначены для разработки.

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

194
задан Mel 30 May 2017 в 23:28
поделиться