Skip to main content

プロジェクトに貢献する

フォークを通じてプロジェクトに貢献する方法について説明します。

フォークについて

しばらく自分で GitHub を使用した後、他のユーザーのプロジェクトに貢献したい場合があります。 または、誰かのプロジェクトを自分の出発点として使用したい場合があります。 このプロセスはフォークと呼ばれます。

「フォーク」を作成すると、他のユーザーのプロジェクトの個人用コピーが生成されます。 フォークは、元のリポジトリと個人用コピーの間の一種のブリッジとして機能します。 元のプロジェクトに変更を提供することで、他のユーザーのプロジェクトをより良くするのに役立つ pull request を送信できます。 フォークは、GitHub におけるソーシャル コーディングの中核です。 詳細については、「リポジトリのフォーク」を参照してください。

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

このチュートリアルでは、Spoon-Knife プロジェクト (GitHub.com でホストされているテスト リポジトリ)を使用して、フォークと pull request のワークフローをテストします。

  1. https://github.com/octocat/Spoon-KnifeSpoon-Knife プロジェクトに移動します。
  2. [フォーク] をクリックします。 [フォーク] ボタン
  3. フォークされたリポジトリの所有者を選びます。 [所有者] ドロップダウンが強調された新しいフォーク ページを作成する
  4. 既定では、フォークの名前はその親リポジトリと同じです。 フォークの名前を変更して、さらに区別することができます。 "リポジトリ名" フィールドが強調された新しいフォーク ページを作成する
  5. 必要に応じて、リポジトリの説明を追加します。 "説明" フィールドが強調された新しいフォーク ページを作成する
  6. 既定のブランチのみをコピーするか、すべてのブランチを新しいフォークにコピーするかを選びます。 オープンソース プロジェクトへのコントリビューションなど、多くのフォーク シナリオでは、既定のブランチのみをコピーする必要があります。 既定では、既定のブランチのみがコピーされます。 既定のブランチのみをコピーするオプション
  7. [フォークの作成] をクリックします。 強調された [フォークの作成] ボタン

注: 親リポジトリから追加のブランチをコピーする場合は、 [ブランチ] ページから行うことができます。 詳細については、「リポジトリ内でブランチを作成および削除する」を参照してください。

フォークの複製

Spoon-Knife リポジトリのフォークが正常に生成されましたが、現時点では GitHub にのみ存在しています。 プロジェクトで作業できるようにするには、コンピューターに複製する必要があります。

フォークは、コマンド ライン、GitHub CLI、または GitHub Desktop を使用して複製できます。

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

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

  3. リポジトリの URL をコピーします。

    • HTTPS を使ってリポジトリをクローンするには、[HTTPS] の下の をクリックします。
    • 組織の SSH 認証局から発行された証明書を含む SSH キーを使用してリポジトリをクローンするには、 [SSH] の順にクリックします。
    • GitHub CLI を使ってリポジトリをクローンするには、 [GitHub CLI] の順にクリックします。 GitHub CLI でリポジトリをクローンするための URL をコピーするためのクリップボード アイコン 1. [ターミナル][ターミナル][Git Bash] を開きます。 4. カレントワーキングディレクトリを、ディレクトリをクローンしたい場所に変更します。
  4. git clone」と入力し、既にコピーした URL を貼り付けます。 次のようになるはずです。YOUR-USERNAME を自分の GitHub のユーザー名に置き換えてください。

    $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
  5. 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.

GitHub CLI の詳細については、「GitHub CLI について」を参照してください。

フォークのクローンを作成するには、--clone フラグを使用します。

gh repo fork repository --clone=true
  1. [ファイル] メニューの [リポジトリの複製] をクリックします。

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

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

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

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

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

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

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

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

    1. **[選択]** をクリックし、リポジトリを複製するローカル パスへ移動します。

    Chooseボタン

    Chooseボタン

    1. **[複製]** をクリックします。

    Cloneボタン

    Cloneボタン

変更の作成とプッシュ

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 にプッシュする準備ができたら、変更をリモートにプッシュします。

git push
git push

GitHub Desktop で変更をプッシュする方法の詳細については、「変更を GitHub にプッシュする」を参照してください。

pull request の作成

やっと、メイン プロジェクトに変更を提案する準備ができました。 これは、他の誰かのプロジェクトのフォークを生成する最後のステップであり、間違いなく最も重要です。 コミュニティ全体に利益をもたらすと感じる変更を加えた場合は、ぜひ貢献することを検討してください。

そのためには、プロジェクトが存在する GitHub のリポジトリに進みます。 この例では、https://www.github.com/<your_username>/Spoon-Knife です。 自分のブランチが octocat:main よりも 1 コミット分進んでいることを示すバナーが表示されます。 [貢献] をクリックし、 [Open a pull request](pull request を開く) をクリックします。

GitHub を使用すると、フォークと octocat/Spoon-Knife リポジトリの違いを示すページが表示されます。 [pull request の作成] をクリックします。

GitHub を使用すると、タイトルと変更の説明を入力できるページが表示されます。 そもそもこの pull request を行う理由について、できるだけ多くの有用な情報と根拠を提供することが重要です。 プロジェクトの所有者は、変更が自分が考えるほどすべてのユーザーにとって役に立つかどうかを判断できる必要があります。 [pull request の作成] をクリックします。

フィードバックの管理

pull request は検討の対象となります。 この場合、Octocat は非常にビジーであり、おそらく変更をマージしません。 他のプロジェクトで、プロジェクト所有者が pull request を拒否した場合や、リクエストが行われた理由の詳細を求めても、気を悪くしないでください。 プロジェクトの所有者が pull request をマージしないことを選択したとしても、まったく問題ありません。 自分のコピーは誰にも知られることなくインターネット上に存在します。 会ったことがない人が、この変更が元のプロジェクトよりもはるかに価値のあることを発見するかもしれません。

プロジェクトの検索

正常にリポジトリをフォークし、リポジトリに貢献しました。 さらに貢献を続けてください。詳細については、「GitHub でオープンソースに貢献する方法を見つける」を参照してください。