このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-06-09. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

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

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

フォークについて

一般的にフォークは、他のユーザのプロジェクトへの変更を提案するため、あるいは他のユーザのプロジェクトを自分のアイディアの出発点として活用するために使用します。 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 Enterprise Serverのインスタンス に関する Organization の開発作業にオープンソースの原則を適用する方法の詳細については、GitHub のホワイトペーパー「インナーソース入門」を参照してください。

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

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

注釈: GitHub Desktopを使ってリポジトリのフォークをすることができます。 詳しい情報については、「GitHub Desktop からのリポジトリのクローンとフォーク」を参照してください。

ヒント: GitHub CLI を使用してリポジトリをフォークすることもできます。 詳しい情報については、GitHub CLI ドキュメントの「gh repo fork」を参照してください。

リポジトリのフォークの例

リポジトリのフォークは、2 つのステップからなるシンプルなプロセスです。 練習用のリポジトリを用意しましたので、ぜひお使いください。

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

フォークを同期させる

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

ステップ 1: Git をセットアップする

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

ステップ 2: フォークのローカルクローンを作成する

今、Spoon-Knife リポジトリのフォークがありますが、お使いのコンピュータにはそのリポジトリ内のファイルはありません。 コンピューター上でローカルにフォークのクローンを作成しましょう。

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

  2. リポジトリ名の下でClone or download(クローンもしくはダウンロード)をクリックしてください。 Clone or downloadボタン

  3. HTTPSを使ってリポジトリをクローンするには、"Clone with HTTPS(HTTPSでクローン)"の下で、 をクリックしてください。 Organization の SSH 認証局から発行された証明書を含む SSH キーを使用してリポジトリのクローンを作成するには、Use SSH(SSHを使用)をクリックし、続いて をクリックしてください。 クローンURLボタン

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

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

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

    $ git clone https://hostname/YOUR-USERNAME/Spoon-Knife
  7. 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 を構成できます。

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

  2. リポジトリ名の下でClone or download(クローンもしくはダウンロード)をクリックしてください。 Clone or downloadボタン

  3. HTTPSを使ってリポジトリをクローンするには、"Clone with HTTPS(HTTPSでクローン)"の下で、 をクリックしてください。 Organization の SSH 認証局から発行された証明書を含む SSH キーを使用してリポジトリのクローンを作成するには、Use SSH(SSHを使用)をクリックし、続いて をクリックしてください。 クローンURLボタン

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

  5. ディレクトリを、「ステップ 2: フォークのローカルクローンを作成する」でクローンしたフォークの場所に変更します。

    • ホームディレクトリに移動するには、cd とだけ入力します。
    • 現在のディレクトリのファイルとフォルダを一覧表示するには、ls と入力します。
    • 一覧表示されたディレクトリのいずれかにアクセスするには、cd your_listed_directory と入力します。
    • 1 つ上のディレクトリに移動するには、cd .. と入力します。
  6. 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)
  7. git remote add upstream と入力し、ステップ 2 でコピーした URL を貼り付けて Enter キーを押します。 次のようになります:

    $ git remote add upstream https://hostname/octocat/Spoon-Knife.git
  8. フォーク用に指定した新しい上流リポジトリを確認するには、再度 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 Enterprise Serverのインスタンス上のOrganizationにフォークできます。

おめでとうございます

リポジトリをフォークし、フォークのクローンを練習し、上流リポジトリを構成しました。 次に何をしたいですか?

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

GitHubコミュニティで質問するサポートへの連絡