フォークについて
しばらく自分で GitHub を使用した後、他のユーザーのプロジェクトに貢献したい� �合があります。 または、誰かのプロジェクトを自分の出発点として使用したい� �合があります。 このプロセスはフォークと呼ばれます。
「フォーク」を作成すると、他のユーザーのプロジェクトの個人用コピーが生成されます。 フォークは、元のリポジトリと個人用コピーの間の一種のブリッジとして機能します。 元のプロジェクトに変更を提供することで、他のユーザーのプロジェクトをより良くするのに役立つ pull request を送信できます。 フォークは、GitHub におけるソーシャル コーディングの中� �です。 詳細については、「リポジトリのフォーク」を参照してく� さい。
リポジトリをフォークする
このチュートリアルでは、Spoon-Knife プロジェクト (GitHub.com でホストされているテスト リポジトリ)を使用して、フォークと pull request のワークフローをテストします。
- https://github.com/octocat/Spoon-Knife で
Spoon-Knife
プロジェクトに移動します。 - [フォーク] をクリックします。
- フォークされたリポジトリの所有者を選びます。
- 既定では、フォークの名前はその親リポジトリと同じです。 フォークの名前を変更して、さらに区別することができます。
- 必要に応じて、リポジトリの説明を追� します。
- 既定のブランチのみをコピーするか、すべてのブランチを新しいフォークにコピーするかを選びます。 オープンソース プロジェクトへのコントリビューションなど、多くのフォーク シナリオでは、既定のブランチのみをコピーする必要があります。 既定では、既定のブランチのみがコピーされます。
- [フォークの作成] をクリックします。
注: 親リポジトリから追� のブランチをコピーする� �合は、 [ブランチ] ページから行うことができます。 詳細については、「リポジトリ内でブランチを作成および削除する」を参照してく� さい。
フォークの複製
Spoon-Knife リポジトリのフォークが正常に生成されましたが、現時点では GitHub Enterprise Server にのみ存在しています。 プロジェクトで作業できるようにするには、コンピューターに複製する必要があります。
フォークは、コマンド ライン、GitHub CLI、または GitHub Desktop を使用して複製できます。
-
GitHub Enterprise Server で、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. > remove: 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
-
[ファイル] メニューの [リポジトリの複製] をクリックします。
変更の作成とプッシュ
Visual Studio Code などのお気に入りのテキスト エディターを使用して、プロジェクトにいくつかの変更を� えます。 たとえば、index.html
のテキストを変更すると、GitHub ユーザー名を追� できます。
変更を送信する準備ができたら、変更をステージングしてコミットします。 git add .
は、次のコミットにすべての変更を含める必要があることを Git に指示します。 git commit
は、これらの変更のスナップショットを取得します。
git add .
git commit -m "a short description of the change"
git add .
git commit -m "a short description of the change"
GitHub Desktop で変更をステージングおよびコミットする方法の詳細については、「プロジェクトへの変更のコミットと確認」を参照してく� さい。
ファイルをステージングしてコミットすると、基本的に Git に「変更のスナップショットを作成してく� さい」と Git に指示したことになります。 引き続き変更を� え、より多くのコミットのスナップショットを作成できます。
現時点では、変更はローカルにのみ存在します。 変更を GitHub Enterprise Server にプッシュする準備ができたら、変更をリモートにプッシュします。
git push
git push
GitHub Desktop で変更をプッシュする方法の詳細については、「変更を GitHub にプッシュする」を参照してく� さい。
pull request の作成
やっと、メイン プロジェクトに変更を提案する準備ができました。 これは、他の誰かのプロジェクトのフォークを生成する最後のステップであり、間違いなく最も重要です。 コミュニティ全体に利益をもたらすと感じる変更を� えた� �合は、ぜひ貢献することを検討してく� さい。
そのためには、プロジェクトが存在する GitHub Enterprise Server のリポジトリに進みます。 この例では、https://www.github.com/<your_username>/Spoon-Knife
です。 自分のブランチが octocat:main
よりも 1 コミット分進んでいることを示すバナーが表示されます。 [貢献] をクリックし、 [Open a pull request](pull request を開く) をクリックします。
GitHub Enterprise Server を使用すると、フォークと octocat/Spoon-Knife
リポジトリの違いを示すページが表示されます。 [pull request の作成] をクリックします。
GitHub Enterprise Server を使用すると、タイトルと変更の説明を入力できるページが表示されます。 そもそもこの pull request を行う理由について、できる� け多くの有用な情� �と� �� を提供することが重要です。 プロジェクトの所有者は、変更が自分が考えるほどすべてのユーザーにとって役に立つかどうかを判断できる必要があります。 [pull request の作成] をクリックします。
フィードバックの管理
pull request は検討の対象となります。 この� �合、Octocat は非常にビジーであり、おそらく変更をマージしません。 他のプロジェクトで、プロジェクト所有者が pull request を拒否した� �合や、リクエストが行われた理由の詳細を求めても、気を悪くしないでく� さい。 プロジェクトの所有者が pull request をマージしないことを選択したとしても、まったく問題ありません。 自分のコピーは誰にも知られることなくインターネット上に存在します。 会ったことがない人が、この変更が元のプロジェクトよりもはるかに価値のあることを発見するかもしれません。
プロジェクトの検索
正常にリポジトリをフォークし、リポジトリに貢献しました。 さらに貢献を続けてく� さい。