GitHubのPull Requestを簡単にチェックアウトするたった1つの方法

みんな知ってるものだと思ったけど、あまり周りで知ってる人がいなかったのでブログに書いた。

こういう釣りタイトルっぽいブログ、一度書いてみたかった。

参考

Checking out pull requests locally - User Documentation

参考というか、そのままだけど。

方法

Pull Requestの IDBRANCHNAME にfetchします。 *1

$ git fetch origin pull/ID/head:BRANCHNAME

ブランチをcheckoutします。

git checkout BRANCHNAME

これだけです。forkした人のリポジトリremote add する必要はないです。

おまけ

マージ後のsha1

ちなみに、Pull Requestのマージ前だと、 pull/ID/merge を使うこともできます。

$ git fetch origin pull/ID/merge:BRANCHNAME

これで、Pull Requestのマージ後のsha1が取れます。
fast-forwardじゃないPull Requestの動作確認をしたい時に便利です。

リモートのブランチ一覧

こんな感じでGitHub上のリポジトリにあるブランチが見えます。

$ git ls-remote origin
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    HEAD
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    refs/heads/master
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    refs/pull/1/head
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    refs/pull/2/head

*1:IDはPull Requestの番号、BRANCHNAMEは好きなブランチ名