How to Checkout to a Github Pull Request
There was a pull request on GitHub and it contains a feature I wanted to test. I didn’t know how to test it locally. Should I just copy the changes to my local since the changes weren’t that big? But what if it was?
Luckily, I found some answers by googling and decided to write it up for future reference.
Git provides a command for it and here is the sample syntax
$ git fetch <remote> pull/:id/head:<branch>
Here is an example demo:
$ git remote -v
origin git@github.com:yujinyuz/somerepository.git (fetch)
origin git@github.com:yujinyuz/somerepository.git (push)
upstream git@github.com:someuser/somerepository.git (fetch)
upstream git@github.com:someuser/somerepository.git (push)
$ git fetch upstream pull/123/head:testing-pr
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Total 17 (delta 15), reused 15 (delta 15), pack-reused 2
Unpacking objects: 100% (17/17), 1.78 KiB | 58.00 KiB/s, done.
From github.com:someuser/somerepository
* [new ref] refs/pull/123/head -> testing-pr
$ git checkout testing-pr
- The value I used for
<remote>
isupstream
because that’s where the pull request resides - It will create a branch named
testing-pr
locally so this doesn’t have to be the exact name of the author’s branch.
And you can now test the pull request locally. That’s it and I hope it helps!