web-dev-qa-db-ja.com

Git生産/ステージングサーバーワークフロー

現在、私のWebサイト(運用サーバー)には既に多くのコードが含まれています。そして今、プロジェクトにGitを使い始め、チーム用にステージングサーバーをセットアップしたいと思います。誰かアドバイスをいただけますか?

これが私の心の中の写真です。

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

私の質問は、どのように始めるべきですか?

ここに私の心の中のいくつかのステップがあります:

  1. git init実動サーバー内(これは安全ですか?)
  2. clone本番からステージングサーバーへのリポジトリ
  3. 開発者cloneステージングからローカルマシンへのリポジトリ
  4. Pushファイルは、変更の完了後にステージングサーバーに送信されます
  5. ステージングの準備ができたら、Pushプロダクションのすべて

このワークフローは理にかなっていますか、またはそれを行うためのより良い方法がありますか?

1つのファイルのみを変更したい場合はどうなりますか?

Origin/masterはこのプロセスで何か関係がありますか??誰が起源ですか?私は複数の起源を持つことになりますか??

また、この場合、開発者はいつbranchを使用する必要がありますか?

107
kayue

マスターブランチは、ステージングの運用および開発ブランチにのみ使用することをお勧めします。各開発者は、ローカルブランチを作成して新しい機能を追加し、開発ブランチとマージする必要があります。 gitを初めて使用する場合は、使用してみてください- http://github.com/nvie/gitflow git分岐モデルを説明する良い写真もあります- http:// nvie .com/posts/a-successful-git-branching-model /

58
bUg.

あなたの提案は問題ないように見えますが、開発者がステージングサーバーに直接プッシュすることはできません。代わりに、integratorは慎重にブランチを確認し、メインブランチ(またはbUgで提案されているgitフローモデルを使用する場合は開発ブランチ)に組み込む必要があります。ステージングサーバーに。

*Integrator: " グループプロジェクトでインテグレーターとして機能するかなり中心的な人物は、他のユーザーによる変更を受け取り、それらをレビューおよび統合し、他のユーザーが使用できるように結果を公開します... "


1。実動サーバーでgit initを実行します(これは安全ですか?)

はい、それは安全ですが、もちろんこのリポジトリに非常に制限された許可を設定する必要があります。まだ持っていない場合は、ウェブサイト全体をローカルディスクにcurlingすることから始めます。

2。本番からステージングサーバーにリポジトリを複製します

おそらく、本番サーバーとステージングサーバーの両方から独立した「中央」レポジトリが必要です。その1つは必要に応じて複製およびプッシュできます。

3。開発者はステージングからローカルマシンにリポジトリを複製します

4。変更の完了後にファイルをステージングサーバーにプッシュする

5。ステージングの準備ができたら、すべてをプロダクションにプッシュします

「ステージング」を「中央」に置き換えれば大丈夫だと思いますが、bUgが指摘しているように、より大きな問題はブランチとマージの操作方法です。

18
Felixyz