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