GitHubでPull requestをレビューする際に、手元で動作させてみたいときに私は以下のようにしています。
$ git checkout <pull request URL>
これはhubコマンドの機能を利用して、閲覧しているPRのURLを情報として与えています。
hubのエイリアスを設定しているのでgitコマンドでhubの機能も動作しています。
エイリアスを設定していない人はgitの部分がhubとなります。
例えば自分がrubocopのPRを見ていて、手元で動作確認したいとします。
手元のrubocopのリポジトリで、ブラウザのURLをコピーしてきて、以下のコマンドを実施すると手元にPRの状態を再現できます。
$ git checkout https://github.com/bbatsov/rubocop/pull/559
Updating elebow
remote: Counting objects: 19, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 19 (delta 15), reused 18 (delta 15), pack-reused 1
Unpacking objects: 100% (19/19), done.
From git://github.com/elebow/rubocop
* [new branch] add-cop-activerecord-aliases -> elebow/add-cop-activerecord-aliases
Branch elebow-add-cop-activerecord-aliases set up to track remote branch add-cop-activerecord-aliases from elebow.
Switched to a new branch 'elebow-add-cop-activerecord-aliases'
このように他人のリポジトリから送られたPRでも、1コマンドでPRを提出している側の状態を手元に再現することができます。
リモートブランチなどの紐付きもやってくれます。
$ cat .git/config
(省略)
[remote "elebow"]
url = git://github.com/elebow/rubocop.git
fetch = +refs/heads/add-cop-activerecord-aliases:refs/remotes/elebow/add-cop-activerecord-aliases
tagopt = --no-tags
[branch "elebow-add-cop-activerecord-aliases"]
remote = elebow
merge = refs/heads/add-cop-activerecord-aliases
hubコマンド便利なので、ぜひ利用してみてください。
この方法はGitHub実践入門の161から162ページにかけて、Hubコマンドの紹介でも解説しています。他にも便利なTipsなどは豊富なので、手にとっていただけると幸いです。