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