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

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

Members of an enterprise with managed users cannot fork repositories from outside of the enterprise or fork internal repositories.

フォークについて

一般的にフォークは、他のユーザのプロジェクトへの変更を提案するため、あるいは他のユーザのプロジェクトを自分のアイディアの出発点として活用するために使用します。 You can fork a repository to create a copy of the repository and make changes without affecting the upstream repository. For more information, see "Working with forks."

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

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

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

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

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

GitHub に関する Organization の開発作業にオープンソースの原則を適用する方法の詳細については、GitHub のホワイトペーパー「インナーソース入門」を参照してください。

他のユーザのプロジェクトのフォークからパブリックリポジトリを作成する際は、プロジェクトの他者との共有方法を定義するライセンスファイルを必ず含めてください。 詳しい情報については、choosealicense.com の「オープンソースのライセンスを選択する」を参照してください。

オープンソースに関する詳しい情報、特にオープンソースプロジェクトの立ち上げと成長させる方法について、Open Source Guidesを作成しました。これは、オープンソースプロジェクトのためのリポジトリの作成と管理にに関するベストプラクティスを推奨することによって、健全なオープンソースコミュニティの育成を支援しようとするものです。 オープンソースコミュニティの管理に関する無料のGitHub Learning Labコースを利用することもできます。

必要な環境

まだ設定していない場合は、まず Git を設定します。 Git からの GitHub への認証を設定することも忘れないでください。

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

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

  1. GitHub で、octocat/Spoon-Knife リポジトリに移動します。
  2. ページの右上にある [Fork] をクリックします。 [Fork] ボタン

To learn more about GitHub CLI, see "About GitHub CLI."

To create a fork of a repository, use the gh repo fork subcommand.

gh repo fork repository

To create the fork in an organization, use the --org flag.

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

Cloning your forked repository

Right now, you have a fork of the Spoon-Knife repository, but you don't have the files in that repository locally on your computer.

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

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

  3. HTTPSを使ってリポジトリをクローンするには、"Clone with HTTPS(HTTPSでクローン)"の下で、 をクリックしてください。 OrganizationのSSH認証局が発行した証明書を含むSSHキーを使ってリポジトリをクローンするには、Use SSH(SSHを利用)をクリックし、続いてをクリックしてください。GitHub CLIを使ってリポジトリをクローンするには、Use GitHub CLIをクリックし、続いてをクリックしてください。 リポジトリをクローンするURLをコピーするクリップボードアイコン

    GitHub CLIでリポジトリをクローンするためのURLをコピーするためのクリップボードアイコン

  4. ターミナルターミナルGit Bashを開いてください。

  5. カレントワーキングディレクトリを、ディレクトリをクローンしたい場所に変更します。

  6. git clone と入力し、前の手順でコピーした URL を貼り付けます。 次のようになるはずです (YOUR-USERNAME はあなたの GitHub ユーザ名に置き換えてください):

    $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
  7. Enter を押します。 これで、ローカルにクローンが作成されます。

    $ git clone https://github.com/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.

To learn more about GitHub CLI, see "About GitHub CLI."

To create a clone of your fork, use the --clone flag.

gh repo fork repository --clone=true
  1. Fileメニューで、Clone Repository(リポジトリのクローン)をクリックしてください。

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

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

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

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

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

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

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

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

  4. Choose...(選択...)をクリックし、リポジトリをクローンしたいローカルのパスに移動してください。

    Chooseボタン

    Chooseボタン

  5. Cloneをクリックします。

    Cloneボタン

    Cloneボタン

Configuring Git to sync your fork with the original repository

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

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

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

  3. HTTPSを使ってリポジトリをクローンするには、"Clone with HTTPS(HTTPSでクローン)"の下で、 をクリックしてください。 OrganizationのSSH認証局が発行した証明書を含むSSHキーを使ってリポジトリをクローンするには、Use SSH(SSHを利用)をクリックし、続いてをクリックしてください。GitHub CLIを使ってリポジトリをクローンするには、Use GitHub CLIをクリックし、続いてをクリックしてください。 リポジトリをクローンするURLをコピーするクリップボードアイコン

    GitHub CLIでリポジトリをクローンするためのURLをコピーするためのクリップボードアイコン

  4. ターミナルターミナルGit Bashを開いてください。

  5. Change directories to the location of the fork you cloned.

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

    $ git remote -v
    > origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
  7. git remote add upstream と入力し、ステップ 2 でコピーした URL を貼り付けて Enter キーを押します。 次のようになります:

    $ git remote add upstream https://github.com/octocat/Spoon-Knife.git
  8. フォーク用に指定した新しい上流リポジトリを確認するには、再度 git remote -v と入力します。 フォークの URL が origin として、オリジナルのリポジトリの URL が upstream として表示されるはずです。

    $ git remote -v
    > origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
    > upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
    > upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

これで、いくつかの Git コマンドでフォークと上流リポジトリの同期を維持できます。 詳細は「フォークを同期する」を参照してください。

To learn more about GitHub CLI, see "About GitHub CLI."

To configure a remote repository for the forked repository, use the --remote flag.

gh repo fork repository --remote=true

To specify the remote repository's name, use the --remote-name flag.

gh repo fork repository --remote-name "main-remote-repo"

次のステップ

フォークには、次のような変更を加えることができます。

  • ブランチを作成する: ブランチによって、メインプロジェクトをリスクにさらすことなく新機能を構築したりアイデアを試したりできます。
  • プルリクエストをオープンする: オリジナルのリポジトリにコントリビュートしたい場合は、プルリクエストを送信して、オリジナルの作者に自分のフォークをリポジトリへプルするようリクエストを送信できます。

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

リポジトリをフォークしてプロジェクトへのコントリビューションを開始しましょう。 ユーザアカウントあるいはリポジトリの作成権限を持つOrganizationにリポジトリをフォークできます。 詳細は「Organization の権限レベル」を参照してください。

プライベートリポジトリにアクセスでき、オーナーがフォークを許可しているなら、そのリポジトリを自分のアカウントあるいはリポジトリの作成権限を持っているGitHub Team上のOrganizationにフォークできます。 ぷらいべーとリポジトリは、GitHub Freeを使っているOrganizationにはフォークできません。 詳しい情報については「GitHubの製品」を参照してください。

Explore を閲覧して、プロジェクトを探してオープンソースのリポジトリへのコントリビューションを開始できます。 詳しい情報については、「GitHub でオープンソースにコントリビュートする方法を見つける」を参照してください。

おめでとうございます

リポジトリをフォークし、フォークのクローンを練習し、上流リポジトリを構成しました。 For more information about cloning the fork and syncing the changes in a forked repository from your computer see "Set up Git."

You can also create a new repository where you can put all your projects and share the code on GitHub. For more information see, "Create a repository."

Each repository in GitHub is owned by a person or an organization. You can interact with the people, repositories, and organizations by connecting and following them on GitHub. For more information see "Be social."

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

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?