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