0

プロジェクトの唯一の開発者として、ステージングと本番用に単一のサーバーを使用することによって制約された、git を使用した単純な開発と展開のワークフローを打ち破ろうとしています。

制作経路は/var/www/vhosts/site.com

ステージングパスは/var/www/vhosts/staging.site.com

ステージング用のブランチを作成する方法と、サーバー上にプライム (ライブ サイト コード) とハブ (コードベースのクローン) リポジトリを用意し、ハブからローカルの作業クローンを作成するのが最善であることを理解しています。/var/www/vhosts/しかし、本番環境とステージングの両方を提供する git リポジトリを作成するにはどうすればよいでしょうか? 別のリポジトリが必要ですか?

4

2 に答える 2

1

記事から、「ハブ」と呼ばれる 1 つのメインのベア リポジトリがあります。'prime' リポジトリとコンピュータ上のリポジトリは、'hub' のクローンです。

あなたの状況では、2 つの「プライム」リポジトリがあります。1 つはステージング領域 (「prime-staging」) で、もう 1 つはプロダクション領域 (「prime-production」) です。

この記事で説明されているフックと、ここで説明されているフック(プッシュされたブランチに応じて特定のアクションを実行するフック) を組み合わせて使用​​すると、「prime-staging」または「prime-production」リポジトリが更新されます。

「ハブ リポジトリには、master(またはstaging) ステージング サイトにproduction関連付けられたブランチと、運用サイトに関連付けられたブランチの 2 つが必要です。ですべての作業を行いmaster、これらの変更を「ハブ」にプッシュして、git フックがステージング リポジトリを更新できるようにします。ライブ環境でこれらの変更を確認し、必要な変更を加えmasterて「ハブ」に再度プッシュします。ステージング サイトに問題がなければ、次のようにします。

git checkout production
git reset --hard master
git push origin production

これで、git フックは運用ブランチが更新されたことを確認し、それに応じて運用サイトを更新します。(注:ハブが単なる命名法であると仮定すると、プライマリ リポジトリを呼び出すのが標準ですorigin)

したがって、サーバーで想像するセットアップは次のとおりです。

mkdir -p /path/to/site.git
cd /path/to/site.git                          #// hub
git init --bare
cd /var/www/vhosts
git clone /path/to/site.git site.com          #// prime-production
git clone /path/to/site.git staging.site.com  #// prime-staging

フックを に配置しsite.gitます。stagingブランチが更新されたら、に変更し/var/www/vhosts/staging.site.comて実行しgit pullます。productionのブランチが更新されたときにも同じことを行い/var/www/vhosts/site.comます。

于 2015-11-04T11:14:33.253 に答える