GitホスティングサービスGitHubの特徴的な機能のひとつであるフォーク(Fork)について解説します。フォーク(Fork)は誰かがGitHubに公開しているリモートリポジトリを自分のリモートリポジトリとしてGitHubにコピーする機能で、チーム開発や誰かの変更履歴を追って学習に役立てたい場合に役立つ機能です。
目次
フォーク(Fork)とは
フォーク(Fork)はGit自体の機能ではなく、GitHubが提供する機能のひとつです。GitHubで公開されているいずれかのリポジトリを親リポジトリとして指定し、そのコピーを自分のリモートリポジトリとしてGitHub上に作成します。
GitHubを用いたチーム開発ではプルリクエストと合わせてよく使われるほか、フォーク単体では気になるプロジェクトの変更履歴を追って自己学習に役立てることもできます。
フォークはもともとのGitの機能ではないためフォーク元のリポジトリと自分のリポジトリはそれぞれ独立しており、GitHubがフォーク元、フォーク先という繋がりを管理しています。
そのためリポジトリをフォークしたからといって勝手に親リポジトリの内容を変更できるわけではありません。親リポジトリに変更内容を反映するにはコミット権限を与えてもらうか、プルリクエストを送って管理者に変更内容を承認してもらう必要があります。
【GitHub】プルリクエスト(Pull Requests)の送り方とマージプルリクエスト
フォーク(Fork)のやり方
それでは実際に他人のリポジトリを自分のGitHubアカウントにフォークしてみましょう。
GitHubに公開されているリポジトリから好きなものを選び公開ページに入ります。今回は私も執筆者として参加させて頂いた、おやかたさん(@oyakata2438)主催の合同誌「ワンストップ見積もり本」のリポジトリをフォークしてみます。
「Fork」ボタンをクリック。

フォーク元アカウントのコミット権限を頂いていたため「すでにフォーク済です」と言われましたが、自分のアカウントの方にフォークしてみます。
「Fork again to a differnt account」をクリック。

フォークしています。しばらく待ちましょう。

本体リポジトリのコピーが自分のリポジトリとして作成されました。これにてフォーク完了です。