How to checkout and edit a pull request locally
Let’s say you have a dependabot pull request and Charlie Marsh has added a new check to Ruff that causes your lint check to fail. You can fix the lint error and push the changes back to the pull request branch!
First, checkout the pull request locally:
# In this case, I'm updating ruff to v0.0.278
git fetch origin dependabot/pip/ruff-0.0.278
git switch --track origin/dependabot/pip/ruff-0.0.278
We’ve now checked out the PR branch and set it to track the
remote. We can use this pattern to keep tabs on long-running PRs,
or as in this case, simply push an additional patch before
merging. If you’d like a more friendly local branch name, you can
append the :my-branch-name
to the end of the git
fetch call, and then call
git switch my-branch-name
to check it out; just keep
in mind that this won’t set the local branch to track the remote.
In my case, this ruff release does not provide any new rule
categories and my lints still pass, however I’d like to update the
ruff version in my .pre-commit-config.yaml
file so
that it’s consistent with my requirements.txt
. I’ll
make that change, commit and push back to the remote.
git add .pre-commit-config.yaml
git commit -m "Update pre-commit config."
git push
At this point, your checks should fire again and you can merge using your preferred merge method into your trunk. Check out real pull request to see how this looks server side.