After some trial and error, here’s how I check out Github pull requests to a local branch with tracking.
Edit .git/config
, add the following line in the section for the desired remote.
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
Ensure to add it before the existing line for remote branches, e.g.
[remote "origin"]
url = git@github.com:user/repo
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
fetch = +refs/heads/*:refs/remotes/origin/*
Run git fetch
and see all the new remote “branches” appear.
Now you can check out a PR branch: git checkout pr/123
Even better, you can create a worktree for each PR you want to review:
git worktree add pr-123 pr/123
cd pr-123
# review review review
cd ..
git worktree remove pr-123
This also allows you to track the remote ref, so if the PR receives additional commits you can just pull them down.