フォークについて
フォークはユーザが管理するリポジトリのコピーです。 フォークを使えば、オリジナルのリポジトリに影響を与えることなくプロジェクトへの変更を行えます。 オリジナルのリポジトリから更新をフェッチしたり、プルリクエストでオリジナルのリポジトリに変更をサブミットしたりできます。
GitHub Enterpriseのユーザあるいは Organization は誰でもリポジトリをフォークできます。 リポジトリをフォークするのは他のリポジトリをコピーするのに似ていますが、2 つの点で大きく異なります:
- プルリクエストを使って自分のフォークからの変更をオリジナルのリポジトリ(上流のリポジトリとも呼ばれます)に提案できます。
- 上流のリポジトリと自分のフォークを同期させることで、上流のリポジトリからの変更を自分のローカルフォークへ持ち込めます。
自分のユーザアカウントや自分がリポジトリの作成権限を持つOrganizationに、任意のパブリックリポジトリをフォークできます。 詳細は「Organization の権限レベル」を参照してください。
自分のユーザアカウントや自分がリポジトリの作成権限を持つGitHub TeamあるいはGitHub Enterprise上のOrganizationに、あなたがアクセスできる任意のプライベートリポジトリをフォークできます。
フォークを削除しても、オリジナルの上流のリポジトリは削除されません。 実際のところ、自分のフォークにはコラボレータの追加、ファイル名の変更、GitHub Pages の生成など、いかなる変更もオリジナルに影響を与えることなく行えます。
オープンソースプロジェクトでは、アイデアや変更を上流のリポジトリ戻して全員が利用できるようにする前に、それらについてのイテレーションをするため、しばしばフォークが使われます。 自分のフォークに変更を行い、自分の作業を上流のリポジトリと比較するプルリクエストをオープンする際には、上流のリポジトリへのプッシュアクセスできる人に対して、自分のプルリクエストブランチへの変更をプッシュする権限を与えることができます。 これにより、マージの前に、フォークからのプルリクエストブランチにリポジトリメンテナがコミットをしたり、ローカルでテストを実行したりできるようになるので、コラボレーションの速度が上がります。
プライベートフォークは、上流もしくは親リポジトリの権限構造を継承します。 たとえば、上流リポジトリがプライベートで読み取り/書き込みアクセスをあるTeamに与えているなら、そのチームはプライベートの上流リポジトリのすべてのフォークに読み取り/書き込みアクセスを持つことになります。 これは、プライベートリポジトリのオーナーがコードに対するコントロールを管理するための役に立ちます。
既存のリポジトリのコンテンツから新しいリポジトリを作成したいけれども、将来にわたって変更を上流にマージしたくない場合、リポジトリを複製することができます。 詳細は「リポジトリを複製する」を参照してください。