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

誰かがリポジトリのフォークまたはブランチからプルリクエストを送信した場合、ローカルでマージして、マージコンフリクトを解決するか、GitHub でマージする前に変更をテストおよび検証できます。

Anyone with write access to a repository can pull a remote pull request down locally.

注釈: プルリクエストの作者は、上流のリポジトリメンテナ、あるいは上流のリポジトリへのプッシュアクセスを持っている人に対し、ユーザ所有のフォークでプルリクエストの比較ブランチにコミットする権限を与えることができます。 詳しい情報については、「フォークから作成されたプルリクエストブランチへの変更を許可する」を参照してください。

Tip: You can also check out a pull request locally using the GitHub CLI. For more information, see "gh pr checkout" in the GitHub CLI documentation.

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

  1. リポジトリ名の下で、クリックします Pull requests Issues and pull requests tab selection
  2. プルリクエストのリストで、変更するプルリクエストをクリックします。
  3. プルリクエストをオープンする場所を選択するには、[Open with ] ドロップダウンを選択して、いずれかのタブをクリックします。 Link to access command line pull request instructions

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

プルリクエストの作者がリクエストに応答しない場合や、フォークを削除した場合でも、プルリクエストをマージできます。 一方、プルリクエストを変更したくても作者が応答しないという場合、プルリクエストを更新するには追加的な手順を踏まなければなりません。

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

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

  1. リポジトリ名の下で IssuesあるいはPull requests(プルリクエスト)をクリックしてください。 Issue とプルリクエストのタブの選択
  2. [Pull Requests] リストで、マージしたいプルリクエストをクリックします。
  3. アクティブではないプルリクエストの ID 番号を検索します。 ID 番号は、プルリクエストのタイトルの後に付いている数字です。 プルリクエストの ID 番号
  4. ターミナルターミナルGit Bashを開いてください。
  5. ID 番号を元に、プルリクエストへの参照をフェッチします。この過程で、新しいブランチが作成されます。
    $ git fetch origin pull/ID/head:BRANCHNAME
  6. このプルリクエストに基づく新しいブランチに切り替えます。
    [main] $ git checkout BRANCHNAME
    > Switched to a new branch 'BRANCHNAME'
  7. これで、このブランチに対して任意の操作を実行できます。 ローカルテストを実行するか、他のブランチをブランチにマージすることができます。
  8. 準備ができたら、新しいブランチをプッシュできます。
    [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. 新しいブランチで新しいプルリクエストを作成します。

エラー: 一部の ref をプッシュできませんでした

リモートの refs/pull/ 名前空間は 読み取り専用です。 ここにコミットをプッシュしようとすると、以下のエラーが表示されます。

! [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 への呼び出しに影響されません。

このドキュメントは役立ちましたか?プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡