リポジトリのフォークはリポジトリのコピーと似ていますが、次の 2 つの大きな違いがあります。
- プルリクエストを使ってユーザが所有するフォークからの変更をオリジナルのリポジトリ(上流のリポジトリとも呼ばれます)に提案できます。
- 上流のリポジトリと自分のフォークを同期させることで、上流のリポジトリからの変更を自分のローカルフォークへ持ち込めます。
You can fork a repository to your user account or any organization where you have repository creation permissions. 詳細は「Organization の権限レベル」を参照してください。
If you have access to a private repository and the owner permits forking, you can fork the repository to your user account or any organization on your GitHub Enterprise Server instance where you have repository creation permissions.
GitHub Desktopを使ってリポジトリのフォークをすることができます。 For more information, see "Cloning and forking repositories from GitHub Desktop."
フォークを削除しても、オリジナルの上流のリポジトリは削除されません。 オリジナルに影響を与えることなく、コラボレータの追加、ファイル名の変更、GitHub Pages の生成など、自分のフォークに必要な変更を加えることができます。
オープンソースプロジェクトでは、フォークを使用して、上流のリポジトリに提供される前にアイデアや変更をイテレーションすることがよくあります。 ユーザ所有のフォークに変更を加え、作業を上流リポジトリと比較するプルリクエストをオープンすると、上流リポジトリへのプッシュアクセスできる人に対して、変更をプルリクエストブランチにプッシュする権限を付与することができます。 これにより、リポジトリメンテナがマージする前に、ユーザが所有するフォークからプルリクエストブランチに対してローカルでコミットを実行したり、テストを実行したりすることができるようになり、コラボレーションがスピードアップします。 Organization が所有するフォークにプッシュ権限を与えることはできません。
プライベートフォークは、上流もしくは親リポジトリの権限構造を継承します。 たとえば、上流リポジトリがプライベートで読み取り/書き込みアクセスをあるTeamに与えているなら、そのチームはプライベートの上流リポジトリのすべてのフォークに読み取り/書き込みアクセスを持つことになります。 これは、プライベートリポジトリのオーナーがコードに対するコントロールを管理するための役に立ちます。
既存のリポジトリのコンテンツから新しいリポジトリを作成するが、将来にわたって変更を上流にマージしない場合、リポジトリを複製するか、リポジトリがテンプレートである場合は、リポジトリをテンプレートとして使うことができます。 詳細は「リポジトリを複製する」および「テンプレートからリポジトリを作成する」を参照してください。