1

一部の開発者が共有するWebサーバー上にWebプロジェクトがあると、そのプロジェクトのGitリポジトリをセットアップするようになります。
しかし、私はまだそれをどのように整理するかについていくつかの疑問を持っています。

私のWebプロジェクトが/var/www/

いくつかの質問、コメントを受け取りたいアイデア:

init同じパブリケーションフォルダにあるgitリポジトリを作成する、プロジェクトのこれらの/var/repo/コピーにコンテンツを作成してコピーし、リポジトリに保存する方がよいでしょうか。init

最初のケースでは、プロジェクトをとして分岐し、superuser人々にこの分岐で作業させることができます...次に、テスト後に分岐をマージすることを決定しますか?しかし、この場合、人々がWebサーバーで自分の作業を簡単にテストできるとは思いません...ローカル環境が必要です。テスト用に設定します。

を作成する場合は、開発者がコミットした作業をテストできるよう/var/repo/domain.comに作成すると便利です。Vhostshttp://git.domain.com

/var/repo/project.comコミットされた作業を公開したい場合(たとえば、ファイルをにコピーする場合/var/www/project.com)、このコピーアクションをどのように実行する必要がありますか?とcp -R?必要なときにこの更新を実行するためのツールはすでにありますか?

4

1 に答える 1

1

まず第一に、あなたは本当にあなたのウェブプロジェクトをリポジトリ自体にするべきではありません。まず、誰もがアクセスできるようにリポジトリを設定する必要があります。マスターブランチと開発ブランチを持つことができ、Webアプリケーションの特別な部分のために誰もが独自のブランチを持つこともできます。最善の解決策は、ライブシステムとは別のサーバーにリポジトリを配置することです。ローカルでテストしたくない場合は、開発/ステージングサーバーをセットアップして、人々がそこでテストできるようにする必要があります。最善の手順は、そのための展開スクリプト(Capistranoなど)を使用することです。

手順は次のようになります。サーバーA:マスターとステージングブランチ、および開発に必要な場合は他のブランチを備えたリポジトリ。サーバーB:ライブシステム(capistranoを使用してここでマスターブランチをデプロイできます-ライブシステムにデプロイできる唯一のユーザーになりたい場合は、サーバーにsshキーを追加するのではなく、サーバーにsshキーを追加するか、別のキーを使用する必要があります認証方法)サーバーC:テスト環境(リポジトリと同じサーバー上にある場合もありますが、個人的にはこれを分離することをお勧めします)

次に、capistranoを使用して、ライブシステムをマスターブランチにリンクし、テストシステムを開発/ステージングブランチにリンクします。もちろん、ステージングサーバーへのsshアクセスが必要です。

dev / stagingブランチを使用して、変更をリポジトリにプッシュできます。その後、「cap staging deploy」を使用して、dev / stagingブランチをdevサーバーにデプロイし、作業をテストできます。すべてが機能する場合は、開発ブランチをプルしてマスターをチェックアウトするだけです。'git merge staging'を使用して、dev / stagingブランチをマスターにマージし、マスターリポジトリにプッシュします。その後、「capproductiondeploy」はすべてをライブシステムにインストールします。

セットアップは非常に簡単です。すべての人のためにいくつかの構成を行うだけで、すばらしいワークフローが得られます。

お役に立てば幸いです。

于 2012-12-05T16:36:34.397 に答える