ハトネコエ Web がくしゅうちょう

プログラミングやサーバー・Web制作、チームマネジメントなど得た技術のまとめ

フォーク元のリポジトリのプルリクエストにチェックアウトする

OSSへのコントリビュートをしていると、
フォーク元のリポジトリにプルリクエストが来ている際、そのコードの動作確認をしたい場合があります。

愚直にプルリクエスト作者のリポジトリへ飛んで git clone してくる方法もなくはないですが、面倒です。
現在のローカルリポジトリディレクトリ内で事を済ませたいです。

以下のようにします。

1. git でおこなう場合

git fetch mainstream pull/1234/head:pr-1234
git checkout pr-1234

mainstream の部分は、フォーク元のリポジトリをどう名付けているかによって変わります。
私は以下のように mainstream と名付けていますのでそれを使っています。

git remote -v

mainstream  git@github.com:materializecss/materialize.git (fetch)
mainstream  git@github.com:materializecss/materialize.git (push)
origin  git@github.com:nekonenene/materialize.git (fetch)
origin  git@github.com:nekonenene/materialize.git (push)

1234 の部分は、目的のプルリクエストID番号に合わせてください。

後ろの pr-1234 の部分については、ブランチ名をどうしたいかなので、ここはご自由に。

gh コマンドを使うともっと楽ができます。

2. gh でおこなう場合

2020年2月に GitHub が新しくリリースしたCLIツールghを使うことで、より簡単におこなうことができます。

まだ使っていない方は、インストールと初期設定を済ませてください。
Mac をお使いであれば、brew install gh でのインストール後、gh auth login で初期設定完了です)

フォーク元のリポジトリhttps://github.com/materializecss/materialize であるとした場合、以下のコマンドで完了です。

gh pr checkout 1234 --repo materializecss/materialize

この1行で新しいブランチの作成と、そのブランチへのチェックアウトまでおこなってくれます。
とっても便利ですね!

gh コマンドを使うことはないと思っていましたが、
この便利機能だけで相当満足なのでインストールしました。レビューが捗ります!