フォークについて
他のユーザーのプロジェクトに投稿したいが、そのリポジトリへの書き込みアクセス権がない� �合は、"フォークと pull request" のワークフローを使用できます。
フォークとは、元の "上流" リポジトリとコードと可視性の設定を共有する新しいリポジトリです。 多くの� �合、フォークは、上流リポジトリに再提案する前に、アイデアや変更に繰り返し取り組むために使用されます。たとえば、オープンソース プロジェクトや、ユーザーが上流リポジトリへの書き込みアクセス権を持っていない� �合などです。
フォークから上流リポジトリに pull request を送信することで、投稿できます。 詳細については、「リポジトリのフォーク」を参照してく� さい。
リポジトリをフォークする
このチュートリアルでは、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
-
[ファイル] メニューの [リポジトリの複製] をクリックします。
作業のためのブランチの作成
プロジェクトに変更を� える前に、新しいブランチを作成してチェックアウトする必要があります。変更を独自のブランチに保持することで、GitHub Flow に従い、今後も同じプロジェクトに貢献しやすくなります。 詳細については、「GitHub のフロー」を参照してく� さい。
git branch BRANCH-NAME
git checkout BRANCH-NAME
git branch BRANCH-NAME
git checkout BRANCH-NAME
GitHub Desktop でブランチを作成および管理する方法の詳細については、「ブランチの管理」を参照してく� さい。
変更の作成とプッシュ
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://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 をマージしないことを選択したとしても、まったく問題ありません。 行った変更はフォーク内に存在しています。 会ったことがない人が、この変更が元のプロジェクトよりもはるかに価値のあることを発見するかもしれません。
プロジェクトの検索
正常にリポジトリをフォークし、リポジトリに貢献しました。 さらに貢献を続けてく� さい。