フォークについて
一般的にフォークは、他のユーザのプロジェクトへの変更を提案するため、あるいは他のユーザのプロジェクトを自分のアイディアの出発点として活用するために使用します。 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コースを利用することもできます。
必要な環境
まだ設定していない場合は、まず Git を設定します。 Git からの GitHub Enterprise Serverのインスタンス への認証を設定することも忘れないでください。
リポジトリをフォークする
上流または元のリポジトリへの変更を提案するために、プロジェクトをフォークする場合があります。 この場合、自分のフォークを上流のリポジトリと定期的に同期させるとよいでしょう。 これには、コマンドラインで Git を使用する必要があります。 先程フォークした同じ octocat/Spoon-Knife リポジトリを使用して、上流リポジトリの設定を練習できます。
- GitHub Enterprise Serverのインスタンス で、octocat/Spoon-Knife リポジトリに移動します。
- ページの右上にある [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.
-
GitHub Enterprise Server で、Spoon-Knife リポジトリの自分のフォークに移動します。
-
ファイルのリストの上にある Code(コード)をクリックしてください。
-
HTTPSを使ってリポジトリをクローンするには、"Clone with HTTPS(HTTPSでクローン)"の下で、 をクリックしてください。 OrganizationのSSH認証局が発行した証明書を含むSSHキーを使ってリポジトリをクローンするには、Use SSH(SSHを利用)をクリックし、続いてをクリックしてください。
-
ターミナルターミナル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.
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
-
Fileメニューで、Clone Repository(リポジトリのクローン)をクリックしてください。
-
クローンしたいリポジトリの場所に対応するタブをクリックしてください。 URLをクリックし、リポジトリの場所を入力することもできます。
-
クローンしたいリポジトリをリストから選択します。
-
Choose...(選択...)をクリックし、リポジトリをクローンしたいローカルのパスに移動してください。
-
Cloneをクリックします。
Configuring Git to sync your fork with the original repository
オリジナルのリポジトリへの変更を提案するためにプロジェクトをフォークする場合は、オリジナルまたは上流のリポジトリから、フォークのローカルのクローンへと、変更をプルするように Git を構成できます。
-
GitHub Enterprise Server で、octocat/Spoon-Knife リポジトリに移動します。
-
ファイルのリストの上にある Code(コード)をクリックしてください。
-
HTTPSを使ってリポジトリをクローンするには、"Clone with HTTPS(HTTPSでクローン)"の下で、 をクリックしてください。 OrganizationのSSH認証局が発行した証明書を含むSSHキーを使ってリポジトリをクローンするには、Use SSH(SSHを利用)をクリックし、続いてをクリックしてください。
-
ターミナルターミナルGit Bashを開いてください。
-
Change directories to the location of the fork you cloned.
- ホームディレクトリに移動するには、
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 コマンドでフォークと上流リポジトリの同期を維持できます。 詳細は「フォークを同期する」を参照してください。
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 Enterprise Serverのインスタンス上のOrganizationにフォークできます。
おめでとうございます
リポジトリをフォークし、フォークのクローンを練習し、上流リポジトリを構成しました。 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 Enterprise Server is owned by a person or an organization. You can interact with the people, repositories, and organizations by connecting and following them on GitHub Enterprise Server. For more information see "Be social."
GitHub Enterprise Serverには素晴らしいサポートコミュニティがあり、助けを求め、世界中の人々と話すことができます。 Github Support Communityでの会話に参加してください。