Git を使用してコードを管理およびデプロイします。私は運用チームに所属しており、展開を行っています。私たちの開発者は変更を加えてコードを Github にプッシュし、私たち (Ops) は管理されたプロセスを使用して本番コードをプルしてデプロイします。
プロセスは次のようになります。
バックグラウンド
- 開発者は何かをします。そのようなものは最終的にGithubにあり、開発者はそう言っています.
- ローカルの「ステージング」クローンと、ローカルの「デプロイ」ベア git リポジトリがあります。ローカルの git クローンには 2 つのリモートがあり、Github が "origin" で、ローカルのベア リポジトリが "deploy" です。
- 「デプロイ」リモートからプルするシェフのgitリソースを介して実際にコードをデプロイするために、ウェブサーバーでシェフを使用します
- 「デプロイ」リモートがあるため、開発の仕上げとデプロイのタイミングの間にゲート メカニズムがあります。(Github から直接デプロイするのではなく)
実際の導入プロセス
cd into local clone
git checkout branchname
git pull origin branchname
git push deploy branchname
これらはすべて部分的に自動化されており、完全自動化に移行しています。そのため、ステージング クローンにローカルな変更を加えないように注意しておりgit status
、そのクローンの出力は、nothing to commit (working directory clean)
ただし、今週は奇妙なメッセージが表示されました。deploy clone は、オリジンより 80 コミット進んでいることを示しています! とも言いますがnothing to commit
。
# On branch branchname
# Your branch is ahead of 'origin/branchname' by 80 commits.
#
nothing to commit (working directory clean)
最後に、それ自体は特に問題はありません。コミット SHA256 ハッシュは、このクローンと、すべての Web サーバーにデプロイされたコードで一致します。実際の rsync の比較は行っていませんが、実際のコード自体が正しくデプロイされていることには自信があります。
これがどのように発生する可能性があるのか、それが悪い場合、ローカル クローンを削除して最初からやり直す以外にクリーンアップする方法を知りたいです。