Note
Pull request の作成者は、アップストリーム リポジトリ メンテナ、またはアップストリーム リポジトリに対するプッシュ アクセス権を持つユーザーに、ユーザー所有のフォーク内の pull request の比較ブランチにコミットするアクセス許可を付与することができます。 詳しくは、「フォークから作成されたプルリクエストのブランチへの変更の許可」をご覧ください。
アクティブなプルリクエストをローカルで修正する
-
リポジトリ名の下にある [pull request] をクリックします。
-
pull request の一覧で、変更する pull request をクリックします。
-
その pull request を開く場所を選ぶには、 [ コード] ドロップダウンを選び、いずれかのタブをクリックします。
Note
GitHub CLI について詳しくは、「GitHub CLI について」をご覧ください。
pull request をローカルでチェックアウトするには、gh pr checkout
サブコマンドを使用します。 PULL-REQUEST
を、pull request の番号、URL、またはヘッド ブランチで置き換えます。
gh pr checkout PULL-REQUEST
アクティブではないプルリクエストをローカルで修正する
pull request の作成者が要求に応答しない場合、または自分のフォークを削除した場合でも、その pull request で提案された変更は新しい pull request を介してマージできます。 一方、プルリクエストを変更したくても作者が応答しないという場合、プルリクエストを更新するには追加的な手順を踏まなければなりません。
プルリクエストがオープンされると、GitHub はすべての変更をリモートで保存します。 つまり、プルリクエストがマージされる前でも、プルリクエストのコミットはリポジトリで利用できます。 オープンなプルリクエストをフェッチして、自分のものとして再作成できます。
誰でも、以前にオープンされたプルリクエストを使って、さらに作業を進めたり、テストしたりできます。そこへ変更を追加して新しいプルリクエストをオープンすることもできます。 ただし、プルリクエストをマージできるのは、プッシュアクセスを持つコラボレータだけです。
-
リポジトリ名の下で、 [イシュー] または [pull request] をクリックします。
-
[Pull Requests] リストで、マージしたいプルリクエストをクリックします。
-
アクティブではないプルリクエストの ID 番号を検索します。 ID 番号は、プルリクエストのタイトルの後に付いている数字です。
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
ID 番号を元に、プルリクエストへの参照をフェッチします。この過程で、新しいブランチが作成されます。
git fetch origin pull/ID/head:BRANCH_NAME
-
このプルリクエストに基づく新しいブランチに切り替えます。
[main] $ git switch BRANCH_NAME > Switched to a new branch 'BRANCH_NAME'
-
これで、このブランチに対して任意の操作を実行できます。 ローカルテストを実行するか、他のブランチをブランチにマージすることができます。
-
準備ができたら、新しいブランチをプッシュできます。
[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://github.com/USERNAME/REPOSITORY.git > * [new branch] BRANCH_NAME -> BRANCH_NAME
-
新しいブランチで新しい 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'
Tip
リモート参照の削除または名前変更を行っても、ローカルの refs/pull/origin/
名前空間は git-remote
の呼び出しの影響を受けません。