2

Git をセットアップして、同じ Web サイトのさまざまなバージョンに同時にアクセスできるようにしたいと考えています。たとえば、「サンドボックス」サイト、「ステージング」サイト、および「本番」サイトです。

現在、Git 1.7.11 が Windows にインストールされており、Git は CentOs 5.5 VPS で実行されています。ローカルには、'master' と 'dev' の 2 つのブランチがあります。リモートには、「master」と「dev」の 2 つのブランチがあります。

Git を使用して Web サイトを管理する方法を示す次のチュートリアルに従いましたが、今ではかなり愚かだと感じています。ローカル マシンからリモート マシンへの dev ブランチまたは master ブランチのいずれかにファイルをコミットできます。これらは更新後のフックを使用して Apache の「htdocs」ディレクトリにチェックアウトされます。これはうまく機能し、ブランチを切り替えるとファイルが「変更」されます。

ただし、両方のバージョンに同時にアクセスできるようにして、クライアントが同じサイトのステージング バージョンを確認しながらサイトを実行できるようにしたいと考えていますどうすればいいですか?その後、Git を使用して staging / dev を master にマージする予定です。

これが最善の方法ですか?更新後のフックでチェックアウトしますか?

GIT_WORK_TREE=/htdocs/production git checkout master -f
GIT_WORK_TREE=/htdocs/staging git checkout dev -f
4

2 に答える 2

0

これは Git に関するあなたの質問には役立たないかもしれませんが、Web 開発ではこの種のワークフローを好まないでしょう。私の意見では、もう少し作業が必要ですが、代わりにはるかに柔軟な方法がある場合です。そして信頼できる。

すべてのコミットがプッシュとフェッチによって行われる裸のパブリックリポジトリをマークするだけです(フックを使用しているもののように)が、フックはありません。次に、リモート サーバーに 2 つのプロジェクト ディレクトリを作成します。1 つは開発用、もう 1 つはマスター用です。両方とも、複製された裸ではない git リポジトリを使用します (それぞれに .git フォルダーがあります)。したがって、Web サーバー (または任意のサーバー上) に 1 つのベア リポジトリがあり、2 つの非ベア リポジトリがあります。

この場合、必要なすべてをローカルにプッシュできます。Web プロジェクト ディレクトリの作業ディレクトリは、プルすることを決定した場合にのみ変更されます。これには、プロジェクトの環境に関連するエラーが発生した場合に、リモート サーバーのプロジェクト ディレクトリに直接すばやく変更を加えることができるという追加の利点があり、修正をコミットして簡単にプッシュバックできます。

また、複数のリモート プロジェクト ディレクトリ (および URL) を使用すると、同じサーバー上で複数のプロジェクト ステートを同時に保持できます。

于 2012-10-05T07:56:55.687 に答える
0
于 2012-10-05T06:13:58.673 に答える