フォークされたワークフローは、プル リクエストを使用して開発者の個人的なフォークからプライマリ リポジトリのリポジトリに変更を送信するこの状況で非常に魅力的になります (そして Github とうまく機能します)。
- 「オリジン」リモートは、サーバー上のプロジェクトの開発者の個人的なフォークを指します (通常、Github などの個人的な領域に保存されます)。
- 一部のサーバーの公式リポジトリでの「上流」リモートポイント。
- 「開発」は定期的に公式リポジトリの「マスター」にマージされます (逆はありません)。
- 公式リポジトリの 'development' と 'master' はどちらも常にクリーンにビルド/テストする必要があります。
- 開発者は、開発に基づいてローカル ブランチを作成し、特定の問題/ストーリーのサブセットを処理します。
- コードがレビューの準備が整い、すべてのテストに合格したら、開発からローカル ブランチをもう一度リベースし、次に
git push
ブランチをプライベート フォーク リポジトリにリベースし、プライベート フォーク/ブランチからマスター リポジトリ/開発ブランチへのプル リクエストを作成します。 .
開発者が「i903-description-of-issue」という名前のブランチ (903 は私たちの github issue 番号) を持っており、開発に対してリベースする必要があると仮定します。
git fetch upstream
git checkout development
git merge --ff-only upstream/development
git checkout i903-description-of-issue
git rebase development
git push origin i903-description-of-issue
したがって、開発者は、自分の個人用ブランチがメイン リポジトリの公式の「開発」ブランチと常に一致していることを確認する責任があります (リベースを介して)。プル リクエストを使用して、複数のコミットを 1 回でメインの「開発」ブランチにマージします。この Github (およびその他のツール) のプル リクエスト モデルを使用すると、PR を受け入れる前にコード レビューを行うことができます。
「開発」ブランチを QA サーバーに継続的に展開する機能を壊す破壊的な機能ブランチになる場合は、おそらく、新しい機能をより小さなビットに分割して、混乱を少なくする必要があります。