一般的にフォークは、他のユーザのプロジェクトへの変更を提案するため、あるいは他のユーザのプロジェクトを自分のアイディアの出発点として活用するために使用します。
他のユーザのプロジェクトへの変更を提案する
たとえば、フォークを使用して、バグの修正に関連する変更を提案できます。 見つけたバグから Issue をログするのではなく、以下のことができます:
- リポジトリをフォークする。
- 修正する。
- Submit a pull request to the project owner.
他のユーザのプロジェクトを自分のアイディアの出発点として活用する。
オープンソースソフトウェアは、コードを共有することで、より優れた、より信頼性の高いソフトウェアを作成可能にするという考えに基づいています。 詳しい情報については、Open Source Initiative の「Open Source Initiative について」を参照してください。
他のユーザのプロジェクトのフォークからパブリックリポジトリを作成する際は、プロジェクトの他者との共有方法を定義するライセンスファイルを必ず含めてください。 詳しい情報については、choosealicense の「オープンソースのライセンスを選択する」を参照してください。
オープンソースに関する詳しい情報、特にオープンソースプロジェクトの立ち上げと成長させる方法について、Open Source Guidesを作成しました。これは、オープンソースプロジェクトのためのリポジトリの作成と管理にに関するベストプラクティスを推奨することによって、健全なオープンソースコミュニティの育成を支援しようとするものです。 オープンソースコミュニティの管理に関する無料のGitHub Learning Labコースを利用することもできます。
注釈: GitHub Desktopを使ってリポジトリのフォークをすることができます。 詳しい情報については「GitHub Desktopからのリポジトリのクローンとフォーク」を参照してください。
リポジトリのフォークの例
リポジトリのフォークは、2 つのステップからなるシンプルなプロセスです。 練習用のリポジトリを用意しましたので、ぜひお使いください。
- your GitHub Enterprise Server instance で、octocat/Spoon-Knife リポジトリに移動します。
- ページの右上にある [Fork] をクリックします。
フォークを同期させる
上流または元のリポジトリへの変更を提案するために、プロジェクトをフォークする場合があります。 この場合、自分のフォークを上流のリポジトリと定期的に同期させるとよいでしょう。 これには、コマンドラインで Git を使用する必要があります。 先程フォークした同じ octocat/Spoon-Knife リポジトリを使用して、上流リポジトリの設定を練習できます。
ステップ 1: Git をセットアップする
まだ設定していない場合は、まず Git を設定します。 Git からの your GitHub Enterprise Server instance への認証を設定することも忘れないでください。
ステップ 2: フォークのローカルクローンを作成する
今、Spoon-Knife リポジトリのフォークがありますが、お使いのコンピュータにはそのリポジトリ内のファイルはありません。 Let's create a clone of your fork locally on your computer.
- On
GitHub Enterprise Server, navigate to your fork of the Spoon-Knife repository.
-
リポジトリ名の下でClone or download(クローンもしくはダウンロード)をクリックしてください。
-
To clone the repository using HTTPS, under "Clone with HTTPS", click . To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click Use SSH, then click .
-
ターミナルターミナルGit Bashを開いてください。
-
カレントワーキングディレクトリを、ディレクトリをクローンしたい場所に変更します。
-
git clone
と入力し、前の手順でコピーした URL を貼り付けます。 次のようになるはずです (YOUR-USERNAME
はあなたの GitHub Enterprise Server ユーザ名に置き換えてください):$ git clone https://hostname/YOUR-USERNAME/Spoon-Knife
-
Enter を押します。 これで、ローカルにクローンが作成されます。
$ git clone https://hostname/YOUR-USERNAME/Spoon-Knife > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. > remove: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done.
Spoon-Knife リポジトリのフォークのローカルのコピーができました。
ステップ 3: Git を構成して、自分のフォークとオリジナルの Spoon-Knife リポジトリを同期させる
オリジナルのリポジトリへの変更を提案するためにプロジェクトをフォークする場合は、オリジナルまたは上流のリポジトリから、フォークのローカルのクローンへと、変更をプルするように Git を構成できます。
- On
GitHub Enterprise Server, navigate to the octocat/Spoon-Knife repository.
-
リポジトリ名の下でClone or download(クローンもしくはダウンロード)をクリックしてください。
-
To clone the repository using HTTPS, under "Clone with HTTPS", click . To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click Use SSH, then click .
-
ターミナルターミナルGit Bashを開いてください。
-
ディレクトリを、「ステップ 2: フォークのローカルクローンを作成する」でクローンしたフォークの場所に変更します。
- ホームディレクトリに移動するには、
cd
とだけ入力します。 - 現在のディレクトリのファイルとフォルダを一覧表示するには、
ls
と入力します。 - 一覧表示されたディレクトリのいずれかにアクセスするには、
cd your_listed_directory
と入力します。 - 1 つ上のディレクトリに移動するには、
cd ..
と入力します。
- ホームディレクトリに移動するには、
-
git remote -v
と入力して Enter キーを押します。 フォーク用に現在構成されているリモートリポジトリが表示されます。$ git remote -v > origin https://hostname/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://hostname/YOUR_USERNAME/YOUR_FORK.git (push)
-
git remote add upstream
と入力し、ステップ 2 でコピーした URL を貼り付けて Enter キーを押します。 次のようになります:$ git remote add upstream https://hostname/octocat/Spoon-Knife.git
-
フォーク用に指定した新しい上流リポジトリを確認するには、再度
git remote -v
と入力します。 フォークの URL がorigin
として、オリジナルのリポジトリの URL がupstream
として表示されるはずです。$ git remote -v > origin https://hostname/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://hostname/YOUR_USERNAME/YOUR_FORK.git (push) > upstream https://hostname/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) > upstream https://hostname/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
これで、いくつかの Git コマンドでフォークと上流リポジトリの同期を維持できます。 詳細は「フォークを同期する」を参照してください。
次のステップ
フォークには、次のような変更を加えることができます。
- ブランチを作成する: ブランチによって、メインプロジェクトをリスクにさらすことなく新機能を構築したりアイデアを試したりできます。
- プルリクエストをオープンする: オリジナルのリポジトリにコントリビュートしたい場合は、プルリクエストを送信して、オリジナルの作者に自分のフォークをリポジトリへプルするようリクエストを送信できます。
フォークする他のリポジトリを見つける
リポジトリをフォークしてプロジェクトへのコントリビューションを開始しましょう。 任意のパブリックなリポジトリを、自分のユーザアカウントあるいはリポジトリの作成権限を持っている任意のOrganization にフォークできます。 詳細は「Organization の権限レベル」を参照してください。
アクセス権を持っている任意のプライベートリポジトリを、自分のユーザアカウント及びリポジトリの作成権限を持っているGitHub TeamもしくはGitHub Enterprise上の任意のOrganizationにフォークできます。 You cannot fork a private repository to an organization using GitHub Free.
おめでとうございます
リポジトリをフォークし、フォークのクローンを練習し、上流リポジトリを構成しました。 次に何をしたいですか?
- Git をセットアップする
- 「リポジトリを作成する」
- 交流する
- GitHub Community Supportで世界中の人々とつながってください。