他人のPull requestを手元で動作確認するための便利なやり方

git

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などは豊富なので、手にとっていただけると幸いです。

タイトルとURLをコピーしました