フォークについて
フォークとは、元の "上流" リポジトリとコードと可視性の設定を共有する新しいリポジトリです。 多くの� �合、フォークは、上流リポジトリに再提案する前に、アイデアや変更に繰り返し取り組むために使用されます。たとえば、オープンソース プロジェクトや、ユーザーが上流リポジトリへの書き込みアクセス権を持っていない� �合などです。 詳細については、「フォークを使って作業する」を参照してく� さい。
他のユーザのプロジェクトへの変更を提案する
たとえば、フォークを使用して、バグの修正に関連する変更を提案できます。 見つけたバグから issue をログに記録するのではなく、以下のことを行えます。
- リポジトリをフォークします。
- 修正する。
- プロジェクトのオーナーにプルリクエストを送信する。
他のユーザのプロジェクトを自分のアイディアの出発点として活用する。
オープンソースソフトウェアは、コードを共有することで、より優れた、より信� �性の高いソフトウェアを作成可能にするという考えに基づいています。 詳細については、オープンソース イニシアティブの「オープンソース イニシアティブについて」を参照してく� さい。
your GitHub Enterprise Server instance で Organization の開発作業にオープンソースの原則を適用する詳細の方法については、GitHub のホワイト ペーパー「InnerSource の概要」を参照してく� さい。
他のユーザのプロジェクトのフォークからパブリックリポジトリを作成する際は、プロジェクトの他者との共有方法を定義するライセンスファイルを必ず含めてく� さい。 詳細については、choosealicense.com の「オープンソース ライセンスの選択」を参照してく� さい。
オープン ソースに関する詳しい情� �、特にオープン ソース プロジェクトの立ち上げと成長させる方法について、「オープン ソース ガイド」を作成しました。これは、オープン ソース プロジェクトのためのリポジトリの作成と管理に関するベスト プラクティスを推奨することで、健全なオープン ソース コミュニティの育成を支援するものです。 オープン ソース コミュニティの維持に関する無料の GitHub Skills コースを受講することもできます。
前提条件
ま� 設定していない� �合は、まず Git と、Git からの your GitHub Enterprise Server instance での認証を設定してく� さい。 詳細については、「Git のセットアップ」を参照してく� さい。
リポジトリをフォークする
上流リポジトリへの変更を提案するために、プロジェクトをフォークする� �合があります。 この� �合、自分のフォークを上流のリポジトリと定期的に同期させるとよいでしょう。 これには、コマンドラインで Git を使用する必要があります。 フォークしたのと同じ octocat/Spoon-Knife リポジトリを使用して、アップストリー� リポジトリの設定を練習できます。
- your GitHub Enterprise Server instance で、octocat/Spoon-Knife リポジトリに移動します。
- ページの右上隅の [フォーク] を選択します。
GitHub CLI の詳細については、「GitHub CLI について」を参照してく� さい。
リポジトリのフォークを作成するには、gh repo fork
サブコマンドを使用します。
gh repo fork REPOSITORY
組織内でフォークを作成するには、--org
フラグを使用します。
gh repo fork REPOSITORY --org "octo-org"
フォークされたリポジトリを複製する
今、Spoon-Knife リポジトリのフォークが存在していますが、お使いのコンピューターのローカルには、そのリポジトリ内のファイルは存在していません。
-
your GitHub Enterprise Server instance で、Spoon-Knife リポジトリの 自分のフォーク に移動します。
-
ファイルのリストの上にある [コード] をクリックしてく� さい。
-
リポジトリの URL をコピーします。
- HTTPS を使ってリポジトリをクローンするには、[HTTPS] の下の をクリックします。
- 組織の SSH 認証局から発行された証明書を含む SSH キーを使用してリポジトリをクローンするには、 [SSH] 、 の� �にクリックします。
- GitHub CLI を使ってリポジトリをクローンするには、 [GitHub CLI] 、 の� �にクリックします。 1. [ターミナル][ターミナル][Git Bash] を開きます。 4. カレントワーキングディレクトリを、ディレクトリをクローンしたい� �所に変更します。
-
「
git clone
」と入力し、既にコピーした URL を貼り付けます。 次のようになるはずです。YOUR-USERNAME
を自分の GitHub Enterprise Server のユーザー名に置き換えてく� さい。$ git clone https://ホスト名/YOUR-USERNAME/Spoon-Knife
-
Enter キーを押します。 これで、ローカルにクローンが作成されます。
$ git clone https://ホスト名/YOUR-USERNAME/Spoon-Knife > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. > remote: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done.
GitHub CLI の詳細については、「GitHub CLI について」を参照してく� さい。
フォークのクローンを作成するには、--clone
フラグを使用します。
gh repo fork REPOSITORY --clone=true
-
[ファイル] メニューの [リポジトリの複製] をクリックします。
フォークが上流リポジトリと同期するように Git を構成する
プロジェクトをフォークして上流リポジトリへの変更を提案する� �合は、Git を構成することで、上流リポジトリからフォークのローカルのクローンへ変更をプルできます。
-
your GitHub Enterprise Server instance で、octocat/Spoon-Knife リポジトリに移動します。
-
ファイルのリストの上にある [コード] をクリックしてく� さい。
-
リポジトリの URL をコピーします。
- HTTPS を使ってリポジトリをクローンするには、[HTTPS] の下の をクリックします。
- 組織の SSH 認証局から発行された証明書を含む SSH キーを使用してリポジトリをクローンするには、 [SSH] 、 の� �にクリックします。
- GitHub CLI を使ってリポジトリをクローンするには、 [GitHub CLI] 、 の� �にクリックします。 1. [ターミナル][ターミナル][Git Bash] を開きます。
-
複製したフォークの� �所にディレクトリを変更します。
- ホー� ディレクトリに移動するには、他のテキストを含めずに「
cd
」と入力します。 - 現在のディレクトリのファイルとフォルダーを一覧表示するには、「
ls
」と入力します。 - 一覧表示されているディレクトリのいずれかに移動するには、「
cd your_listed_directory
」と入力します。 - 1 つ上のディレクトリに移動するには、「
cd ..
」と入力します。
- ホー� ディレクトリに移動するには、他のテキストを含めずに「
-
「
git remote -v
」と入力して Enter キーを押します。 フォーク用に現在構成されているリモート リポジトリが表示されます。$ git remote -v > origin https://ホスト名/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://ホスト名/YOUR_USERNAME/YOUR_FORK.git (push)
-
「
git remote add upstream
」と入力し、手� � 3 でコピーした URL を貼り付け、Enter キー を押します。 次のようになります。$ git remote add upstream https://ホスト名/ORIGINAL_OWNER/Spoon-Knife.git
-
フォーク用に指定した新しい上流リポジトリを検証するには、再度「
git remote -v
」と入力します。 フォークの URL はorigin
のように表示され、上流リポジトリの URL はupstream
のように表示されます。$ git remote -v > origin https://ホスト名/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://ホスト名/YOUR_USERNAME/YOUR_FORK.git (push) > upstream https://ホスト名/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) > upstream https://ホスト名/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
これで、いくつかの Git コマンドでフォークと上流リポジトリの同期を維持できます。 詳細については、「フォークの同期」を参照してく� さい。
GitHub CLI の詳細については、「GitHub CLI について」を参照してく� さい。
フォークされたリポジトリのリモート リポジトリを構成するには、--remote
フラグを使用します。
gh repo fork REPOSITORY --remote=true
リモート リポジトリの名前を指定するには、--remote-name
フラグを使用します。
gh repo fork REPOSITORY --remote-name "main-remote-repo"
フォークを編集する
フォークには、次のような変更を� えることができます。
- ブランチの作成: ブランチ を使用すると、メイン プロジェクトを危険にさらすことなく、新しい機能を構築し、アイデアをテストできます。
- pull request を開く: 上流リポジトリに投稿する� �合は、pull request を送信することで、フォークをそのリポジトリにプルする要求を元の作成者に送信できます。
フォークする他のリポジトリを見つける
リポジトリをフォークしてプロジェクトへのコントリビューションを開始しましょう。 リポジトリの設定と組織のポリシーでフォークが許可されている� �合は、プライベートまたは内部リポジトリを、ご自分の個人アカウントや、リポジトリの作成権限を持っている 上の組織にフォークできます。
次の手� �
リポジトリをフォークし、フォークのクローンを練習し、上流リポジトリを構成しました。
-
フォークを複製し、コンピューターからフォークしたリポジトリの変更を同期する方法の詳細については、「Git のセットアップ」を参照してく� さい。
-
新しいリポジトリを作成して、すべてのプロジェクトを配置し、コードを GitHub で共有することもできます。 プロジェクトのリポジトリを作成すると、コードを GitHub に� �納できます。 これにより、他の開発者と共有するために選択できる作業のバックアップが提供されます。 詳細については、「リポジトリを作成する」を参照してく� さい。"
-
GitHub の各リポジトリは、個人または組織が所有しています。 GitHub Enterprise Server に接続してフォローすることで、ユーザー、リポジトリ、および組織と対話できます。 詳細については、「交流する」を参照してく� さい。
-
GitHub には� 晴らしいサポート コミュニティがあり、助けを求め、世界中の人々と話すことができます。 GitHub Community で会話に参� してく� さい。