ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

プルリクエストをローカルでチェック アウトする

あなたのリポジトリのフォークまたはブランチから誰かがプルリクエストを送ってきた時に、マージコンフリクトを解決するため、またはあなたのローカルのコンピュータで変更をテストおよび確認するため、GitHub でマージする前にローカルでマージしたい場合があります。

メモ: 作業のマージを早めるため、プルリクエストを作成した人に、上流リポジトリへのプッシュアクセスがある人すべてに、プルリクエストへのコミットをプッシュできるように依頼することもできます。 詳しい情報については、「フォークから作成されたプルリクエストブランチへの変更を許可する」を参照してください。

アクティブなプルリクエストをローカルで修正する

  1. Under your repository name, click Pull requests.

    Issue とプルリクエストのタブの選択

  2. プルリクエストのリストで、マージしたいプルリクエストをクリックします。

  3. プルリクエストの下の方にあるマージボックスで、[command line instructions] をクリックします。 手順に従い、提案されたプルリクエストをローカルにダウンロードしてください。

    コマンドラインのプルリクエスト手順へのリンク

  4. また、提案された変更を GitHub Desktop で表示するには、[open this in GitHub Desktop] をクリックします。

    ローカルのデスクトップでプルリクエストを開くリンク

アクティブではないプルリクエストをローカルで修正する

プルリクエストがアクティブでない場合、コードオーナーが応答していないか、フォークを削除しているかのいずれかです (後者の可能性が高いでしょう)。 フォークが削除されても、プルリクエストはマージできます。 一方、プルリクエストを変更したくても作者が応答しないという場合、プルリクエストを更新するには追加的な手順を踏まなければなりません。

プルリクエストがオープンされると、GitHub はすべての変更をオンラインで保存します。 つまり、プルリクエストがマージされる前でも、リポジトリ内のプルリクエストにあるコミットが利用できます。 これにより、オープンなプルリクエストをフェッチして、自分のために再作成できます。

誰でも、以前にオープンされたプルリクエストを使って、さらに作業を進めたり、テストしたりできます。そこへ変更を追加して新しいプルリクエストをオープンすることもできます。 ただし、プルリクエストをマージできるのは、プッシュアクセスを持つコラボレータだけです。

  1. Under your repository name, click Issues or Pull requests.

    Issue とプルリクエストのタブの選択

  2. [Pull Requests] リストで、マージしたいプルリクエストをクリックします。

  3. アクティブではないプルリクエストの ID 番号を検索します。 ID 番号は、プルリクエストのタイトルの後に付いている数字です。

    Pull Requests ID number

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

  5. ID 番号を元に、プルリクエストへの参照をフェッチします。この過程で、新しいブランチが作成されます。

    $ git fetch origin pull/ID/head:BRANCHNAME
  6. Switch to the new branch that's based on this pull request:

    [master] $ git checkout BRANCHNAME
    > Switched to a new branch 'BRANCHNAME'
  7. これで、このブランチに対して任意の操作を実行できます。 You can run some local tests, or merge other branches into it, including master. 納得のいくまで修正しましょう。

  8. When you're ready, you can push the new branch up:

    [pull-inactive-pull-request] $ git push origin BRANCHNAME
    > Counting objects: 32, done.
    > Delta compression using up to 8 threads.
    > Compressing objects: 100% (26/26), done.
    > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
    > Total 29 (delta 8), reused 0 (delta 0)
    > To https://github.com/username/repository.git
    >  * [new branch]      BRANCHNAME -> BRANCHNAME
  9. Create a new pull request with your new branch.

Error: Failed to push some refs

The remote refs/pull/ namespace is read-only. If you try to push any commits there, you'll see this error:

! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref)
error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git'

参考: リモート参照の削除や名前変更を行った場合、ローカルの refs/pull/origin/ 名前空間は git-remote への呼び出しに影響されません。

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください