リポジトリのフォークはリポジトリのコピーと似ていますが、次の 2 つの大きな違いがあります。
- プルリクエストを使ってユーザが所有するフォークからの変更をオリジナルのリポジトリ(上流のリポジトリとも呼ばれます)に提案できます。
- 上流のリポジトリと自分のフォークを同期させることで、上流のリポジトリからの変更を自分のローカルフォークへ持ち込めます。
任意のパブリックなリポジトリを、自分のユーザアカウントあるいはリポジトリの作成権限を持っている任意のOrganization にフォークできます。 詳細は「Organization の権限レベル」を参照してください。
アクセス権を持っている任意のプライベートリポジトリを、自分のユーザアカウント及びリポジトリの作成権限を持っているGitHub TeamもしくはGitHub Enterprise上の任意のOrganizationにフォークできます。 You cannot fork a private repository to an organization using GitHub Free.
GitHub Desktopを使ってリポジトリのフォークをすることができます。 詳しい情報については「GitHub Desktopからのリポジトリのクローンとフォーク」を参照してください。
フォークを削除しても、オリジナルの上流のリポジトリは削除されません。 You can make any changes you want to your fork—add collaborators, rename files, generate GitHub Pages—with no effect on the original.
オープンソースプロジェクトでは、フォークを使用して、上流のリポジトリに提供される前にアイデアや変更をイテレーションすることがよくあります。 ユーザ所有のフォークに変更を加え、作業を上流リポジトリと比較するプルリクエストをオープンすると、上流リポジトリへのプッシュアクセスできる人に対して、変更をプルリクエストブランチにプッシュする権限を付与することができます。 これにより、リポジトリメンテナがマージする前に、ユーザが所有するフォークからプルリクエストブランチに対してローカルでコミットを実行したり、テストを実行したりすることができるようになり、コラボレーションがスピードアップします。 Organization が所有するフォークにプッシュ権限を与えることはできません。
プライベートフォークは、上流もしくは親リポジトリの権限構造を継承します。 たとえば、上流リポジトリがプライベートで読み取り/書き込みアクセスをあるTeamに与えているなら、そのチームはプライベートの上流リポジトリのすべてのフォークに読み取り/書き込みアクセスを持つことになります。 これは、プライベートリポジトリのオーナーがコードに対するコントロールを管理するための役に立ちます。
If you want to create a new repository from the contents of an existing repository but don't want to merge your changes upstream in the future, you can duplicate the repository or, if the repository is a template, use the repository as a template. 詳細は「リポジトリを複製する」および「テンプレートからリポジトリを作成する」を参照してください。