プルリクエストを使う開発モデルには、主に2つのタイプがあります。 フォークとプルモデルでは、誰でも既存のリポジトリをフォークして、個人のフォークに変更をプッシュできます。 ユーザが所有するフォークにプッシュする際に、ソースリポジトリへのアクセス許可は必要ありません。 プロジェクトのメンテナーは、その変更をソースリポジトリにプルできます。 ユーザが所有するフォークのブランチからソース(上流)のリポジトリのブランチへの変更を提案するプルリクエストをオープンすると、上流のリポジトリへのプッシュアクセスを持つすべてのユーザがプルリクエストに変更を加えられるようにすることができます。 このモデルは、新しいコントリビュータにとって摩擦が減り、事前に調整することなく人々が独立して作業できることから、オープンソースプロジェクトでよく使われます。
ヒント:オープンソースに関する詳しい情報、特にオープンソースプロジェクトの立ち上げと成長させる方法について、健全なオープンソースコミュニティの育成を支援するOpen Source Guidesを作成しました。 オープンソースコミュニティの管理に関する無料のGitHub Learning Labコースを利用することもできます。
共有リポジトリモデルでは、コラボレータは単一の共有リポジトリへのプッシュアクセスが許可され、変更の必要がある場合にはトピックブランチが作成されます。 このモデルでは、メインの開発ブランチに変更がマージされる前に、一連の変更についてコードレビューと一般的な議論を始めることができるので、プルリクエストが役に立ちます。 このモデルは、プライベートなプロジェクトで協力する小さなTeamやOrganizationで普及しています。