プルリクエストをローカルでチェック アウトする
あなたのリポジトリのフォークまたはブランチから誰かがプルリクエストを送ってきた時に、マージコンフリクトを解決するため、またはあなたのローカルのコンピュータで変更をテストおよび確認するため、GitHub でマージする前にローカルでマージしたい場合があります。
メモ: 作業のマージを早めるため、プルリクエストを作成した人に、上流リポジトリへのプッシュアクセスがある人すべてに、プルリクエストへのコミットをプッシュできるように依頼することもできます。 詳しい情報については、「フォークから作成されたプルリクエストブランチへの変更を許可する」を参照してください。
アクティブなプルリクエストをローカルで修正する
-
リポジトリ名の下で [Pull requests] をクリックします。
-
プルリクエストのリストで、マージしたいプルリクエストをクリックします。
-
プルリクエストの下の方にあるマージボックスで、[command line instructions] をクリックします。 手順に従い、提案されたプルリクエストをローカルにダウンロードしてください。
-
また、提案された変更を GitHub Desktop で表示するには、[open this in GitHub Desktop] をクリックします。
アクティブではないプルリクエストをローカルで修正する
プルリクエストがアクティブでない場合、コードオーナーが応答していないか、フォークを削除しているかのいずれかです (後者の可能性が高いでしょう)。 フォークが削除されても、プルリクエストはマージできます。 一方、プルリクエストを変更したくても作者が応答しないという場合、プルリクエストを更新するには追加的な手順を踏まなければなりません。
プルリクエストがオープンされると、GitHub はすべての変更をオンラインで保存します。 つまり、プルリクエストがマージされる前でも、リポジトリ内のプルリクエストにあるコミットが利用できます。 これにより、オープンなプルリクエストをフェッチして、自分のために再作成できます。
誰でも、以前にオープンされたプルリクエストを使って、さらに作業を進めたり、テストしたりできます。そこへ変更を追加して新しいプルリクエストをオープンすることもできます。 ただし、プルリクエストをマージできるのは、プッシュアクセスを持つコラボレータだけです。
-
リポジトリ名の下で [Issues] あるいは [Pull requests] をクリックします。
-
[Pull Requests] リストで、マージしたいプルリクエストをクリックします。
-
アクティブではないプルリクエストの ID 番号を検索します。 ID 番号は、プルリクエストのタイトルの後に付いている数字です。
-
ターミナルターミナルGit Bashターミナル を開いてください。
-
ID 番号を元に、プルリクエストへの参照をフェッチします。この過程で、新しいブランチが作成されます。
$ git fetch origin pull/ID/head:BRANCHNAME
-
Switch to the new branch that's based on this pull request:
[master] $ git checkout BRANCHNAME> Switched to a new branch 'BRANCHNAME'
-
これで、このブランチに対して任意の操作を実行できます。 You can run some local tests, or merge other branches into it, including
master
. 納得のいくまで修正しましょう。 -
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://hostname/username/repository.git > * [new branch] BRANCHNAME -> BRANCHNAME
-
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
への呼び出しに影響されません。