Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。
現在、GitHub AE は限定的リリースです。

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

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

この機能を使用できるユーザー

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

注: pull request の作成者だけが、上流のリポジトリ メンテナ、または上流のリポジトリへのプッシュ アクセスを持っているユーザーに対し、ユーザ所有のフォークで pull request の比較ブランチにコミットする権限を与えることができます。 詳細については、「Allowing changes to a pull request branch created from a fork」 (フォークから作成された pull request ブランチへの変更を許可する) を参照してください。

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

  1. リポジトリ名の下にある [pull request] をクリックします。 [pull request] タブの選択
  2. pull request の一覧で、変更する pull request をクリックします。
  3. マージ ボックスで、 [Comand LIne Instructions](コマンド ラインの手順) をクリックします。 手順に従い、提案されたプルリクエストをローカルにダウンロードしてください。 コマンド ラインの pull request にアクセスする手順へのリンク
  4. 必要に応じて、GitHub Desktop で提案された変更を表示するには、 [open this in GitHub Desktop](GitHub Desktop でこれを開く) をクリックします。 pull request をデスクトップでローカルで開くリンク

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

pull request をローカルでチェックアウトするには、gh pr checkout サブコマンドを使用します。 pull-request を、pull request の番号、URL、またはヘッド ブランチで置き換えます。

gh pr checkout PULL-REQUEST

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

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

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

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

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

エラー: 一部の 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 への呼び出しの影響を受けません。