Skip to main content

リポジトリをフォークする

フォークは、リポジトリのコピーです。 リポジトリをフォークすることにより、オリジナルのプロジェクトに影響を与えることなく変更を自由にテストできます。

フォークについて

最も一般的には、フォークは、書き込みアクセス権がない他のユーザーのプロジェクトに変更を提案し、他のユーザーのプロジェクトを自分のアイデアの出発点として使用するために使用されます。 リポジトリをフォークすると、リポジトリのコピーを作成し、上流リポジトリに影響を与えずに変更を加えることができます。 詳細については、「フォークの操作」を参照してください。

他のユーザのプロジェクトへの変更を提案する

たとえば、フォークを使用して、バグの修正に関連する変更を提案できます。 見つけたバグから issue をログに記録するのではなく、以下のことを行えます。

  • リポジトリをフォークします。
  • 修正する。
  • プロジェクトのオーナーにプルリクエストを送信する。

他のユーザのプロジェクトを自分のアイディアの出発点として活用する。

オープンソースソフトウェアは、コードを共有することで、より優れた、より信頼性の高いソフトウェアを作成可能にするという考えに基づいています。 詳細については、オープンソース イニシアティブの「オープンソース イニシアティブについて」を参照してください。

your enterprise で組織の開発作業にオープンソースの原則を適用する詳細の方法については、GitHub のホワイト ペーパー「InnerSource の概要」を参照してください。

前提条件

まだ行っていない場合は、まず Git を設定する必要があります。 Git から your enterprise への認証も忘れずに実施してください。

リポジトリをフォークする

上流または元のリポジトリへの変更を提案するために、プロジェクトをフォークする場合があります。 この場合、自分のフォークを上流のリポジトリと定期的に同期させるとよいでしょう。 これには、コマンドラインで Git を使用する必要があります。 フォークしたのと同じ octocat/Spoon-Knife リポジトリを使用して、アップストリーム リポジトリの設定を練習できます。

  1. your enterprise で、octocat/Spoon-Knife リポジトリに移動します。
  2. ページの右上隅の [フォーク] を選択します。 [フォーク] ボタン
  3. フォークされたリポジトリの所有者を選びます。 [所有者] ドロップダウンが強調された新しいフォーク ページを作成する
  4. 既定では、フォークの名前はその親リポジトリと同じです。 フォークの名前を変更して、さらに区別することができます。 "リポジトリ名" フィールドが強調された新しいフォーク ページを作成する
  5. 必要に応じて、リポジトリの説明を追加します。 "説明" フィールドが強調された新しいフォーク ページを作成する
  6. 既定のブランチのみをコピーするか、すべてのブランチを新しいフォークにコピーするかを選びます。 オープンソース プロジェクトへのコントリビューションなど、多くのフォーク シナリオでは、既定のブランチのみをコピーする必要があります。 既定では、既定のブランチのみがコピーされます。 既定のブランチのみをコピーするオプション
  7. [フォークの作成] をクリックします。 強調された [フォークの作成] ボタン

注: 親リポジトリから追加のブランチをコピーする場合は、 [ブランチ] ページから行うことができます。 詳しくは、「リポジトリ内でブランチを作成および削除する」を参照してください。

GitHub CLI の詳細については、「GitHub CLI について」を参照してください。

リポジトリのフォークを作成するには、gh repo fork サブコマンドを使用します。

gh repo fork repository

組織内でフォークを作成するには、--org フラグを使用します。

gh repo fork repository --org "octo-org"

フォークされたリポジトリを複製する

今、Spoon-Knife リポジトリのフォークが存在していますが、お使いのコンピューターのローカルには、そのリポジトリ内のファイルは存在していません。

  1. your enterprise で、Spoon-Knife リポジトリの 自分のフォーク に移動します。

  2. ファイルのリストの上にある [コード] をクリックしてください。 [コード] ボタン

  3. リポジトリの URL をコピーします。

    • HTTPS を使ってリポジトリをクローンするには、[HTTPS] の下の をクリックします。
    • 組織の SSH 認証局から発行された証明書を含む SSH キーを使用してリポジトリをクローンするには、 [SSH] の順にクリックします。
    • GitHub CLI を使ってリポジトリをクローンするには、 [GitHub CLI] の順にクリックします。 GitHub CLI でリポジトリをクローンするための URL をコピーするためのクリップボード アイコン 1. [ターミナル][ターミナル][Git Bash] を開きます。 4. カレントワーキングディレクトリを、ディレクトリをクローンしたい場所に変更します。
  4. git clone」と入力し、既にコピーした URL を貼り付けます。 次のようになるはずです。YOUR-USERNAME を自分の GitHub AE のユーザー名に置き換えてください。

    $ git clone https://ホスト名/YOUR-USERNAME/Spoon-Knife
  5. 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
  1. [ファイル] メニューの [リポジトリの複製] をクリックします。

    Mac アプリケーション内の [Clone] メニューオプション

    Windows アプリケーション内の [Clone] メニューオプション

    1. クローンしたいリポジトリの場所に対応するタブをクリックしてください。 **URL** をクリックして、リポジトリの場所を手動で入力することもできます。

    [Clone a repository] メニュー内の [Location] タブ

    [Clone a repository] メニュー内の [Location] タブ

    1. クローンしたいリポジトリをリストから選択します。

    リポジトリリストのクローン

    リポジトリリストのクローン

    1. **[選択]** をクリックし、リポジトリを複製するローカル パスへ移動します。

    Chooseボタン

    Chooseボタン

    1. **[複製]** をクリックします。

    Cloneボタン

    Cloneボタン

フォークが元のリポジトリと同期するように Git を構成する

プロジェクトをフォークして元のリポジトリへの変更を提案する場合は、Git を構成することで、元のリポジトリまたは上流のリポジトリからフォークのローカルのクローンへ変更をプルできます。

  1. your enterprise で、octocat/Spoon-Knife リポジトリに移動します。

  2. ファイルのリストの上にある [コード] をクリックしてください。 [コード] ボタン

  3. リポジトリの URL をコピーします。

    • HTTPS を使ってリポジトリをクローンするには、[HTTPS] の下の をクリックします。
    • 組織の SSH 認証局から発行された証明書を含む SSH キーを使用してリポジトリをクローンするには、 [SSH] の順にクリックします。
    • GitHub CLI を使ってリポジトリをクローンするには、 [GitHub CLI] の順にクリックします。 GitHub CLI でリポジトリをクローンするための URL をコピーするためのクリップボード アイコン 1. [ターミナル][ターミナル][Git Bash] を開きます。
  4. 複製したフォークの場所にディレクトリを変更します。

    • ホーム ディレクトリに移動するには、他のテキストを含めずに「cd」と入力します。
    • 現在のディレクトリのファイルとフォルダーを一覧表示するには、「ls」と入力します。
    • 一覧表示されているディレクトリのいずれかに移動するには、「cd your_listed_directory」と入力します。
    • 1 つ上のディレクトリに移動するには、「cd ..」と入力します。
  5. git remote -v」と入力して Enter キーを押します。 フォーク用に現在構成されているリモート リポジトリが表示されます。

    $ git remote -v
    > origin  https://ホスト名/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin  https://ホスト名/YOUR_USERNAME/YOUR_FORK.git (push)
  6. git remote add upstream」と入力し、手順 3 でコピーした URL を貼り付け、Enter キー を押します。 次のようになります。

    $ git remote add upstream https://ホスト名/ORIGINAL_OWNER/Spoon-Knife.git
  7. フォーク用に指定した新しい上流リポジトリを検証するには、再度「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 を送信することで、フォークをリポジトリにプルする要求を元の作成者に送信できます。

フォークする他のリポジトリを見つける

リポジトリをフォークしてプロジェクトへのコントリビューションを開始しましょう。 企業のポリシーでプライベートおよび内部リポジトリのフォークが許可されているなら、ご自分の個人アカウントや、リポジトリの作成権限を持っている組織にリポジトリをフォークできます。 詳細については、「Organization のロール」を参照してください。

次の手順

リポジトリをフォークし、フォークのクローンを練習し、上流リポジトリを構成しました。

  • フォークを複製し、コンピューターからフォークしたリポジトリの変更を同期する方法の詳細については、「Git のセットアップ」を参照してください。

  • 新しいリポジトリを作成して、すべてのプロジェクトを配置し、コードを GitHub で共有することもできます。 プロジェクトのリポジトリを作成すると、コードを GitHub に格納できます。 これにより、他の開発者と共有するために選択できる作業のバックアップが提供されます。 詳細については、「リポジトリを作成する」を参照してください。"

  • GitHub の各リポジトリは、個人または組織が所有しています。 GitHub AE に接続してフォローすることで、ユーザー、リポジトリ、および組織と対話できます。 詳細については、「交流する」を参照してください。

  • GitHub には素晴らしいサポート コミュニティがあり、助けを求め、世界中の人々と話すことができます。 GitHub Community で会話に参加してください。