ライブ Web サイトをアトミックに更新したいと考えています。ページ、画像、および JavaScript にいくつかの変更を加えた場合、すべての変更は、ダウンタイム、不整合、または 404 なしで同時に表示されます。
変更したファイルを Web サイトのディレクトリに単純にコピーすると、少なくともいくつかの要求で一貫性のないサイトが表示されます。新しいサイトを別のディレクトリにコピーし、古いディレクトリの名前を変更して運用を停止し、新しいディレクトリの名前を変更してライブにすると、しばらくの間 404 が発生します。
本当に 2 つの質問があります。
ファイルのディレクトリをアトミックに更新するにはどうすればよいですか?
これをGitとどのように調整できますか? git pull (または場合によっては push) を使用してデプロイしたいと考えています。git リポジトリ内のサイトのパスはサーバー上のパスとは異なるため、git コマンドまたは OS コマンドを使用して、移動/名前変更を少し行う必要があります。