Я хочу обновить веб-сайт в атомном режиме. Если мы внесли несколько изменений на страницы, изображения и javascript, все изменения должны появляться одновременно без простоя, несогласованности или 404.
Если я просто скопирую измененные файлы в каталог веб-сайта, то по крайней мере несколько запросов будут видеть несогласованный сайт. Если я скопирую новый сайт в отдельный каталог, переименуйте старый каталог, чтобы он его не выпускал, и переименуйте новый каталог, чтобы он стал живым, а на один короткий момент мы получим 404s.
У меня действительно есть два вопроса:
Как я могу обновить каталог файлов по-атомному?
Как я могу координировать это с помощью Git? Мы хотели бы развернуть с помощью git pull (или, возможно, push). Путь сайта в репозитории git отличается от пути на сервере, поэтому необходимо немного перемещать/переименовывать, используя команды git или команды OS.