If you maintain an open-source project, there’s a good chance the pull requests you receive need a little bit of work before they’re ready to merge.
Here’s a quick step-by-step guide for how to modify commits on a pull request when it’s coming from a fork of your repo.
In this guide, we’ll assume the following:
- Your repo: github.com/your-username/your-repo-name
- Your contributor: their-username
- Their PR’s branch: bugfix-branch
Step 1. Add their fork as a remote
You can name the rew remote whatever you want to (in the example below it’s called “anything”, but I’ve been using the contributor’s username in practice):
# git remote add [remote-name] git@github.com/[their-username]/[your-repo-name]
git remote add anything git@github.com/their-username/your-repo-name
Think about how you usually use commands like git pull origin master
, now you’ll be using
commands like git pull anything master
. Anywhere you were using origin
will be replaced
with the name of the remote.
Step 2. Fetch from the remote
This will allow you to do the next step, which is creating local branch tracking one of their branches.
# git fetch [remote-name]
git fetch anything
Step 3. Create a new branch tracking theirs
The name of your new branch doesn’t really matter.
# git checkout -b [your-new-branch] [remote]/[their-prs-branch]
git checkout -b your-new-branch anything/bugfix-branch
Step 4. Make your changes
Make whatever changes you need to do on the branch, and commit them as usual with git commit
.
Step 5. Push the changes
Once you’re done, push your changes! If you rebased,
don’t forget you’ll need to force push (using the -f
flag).
# git push [remote-name] HEAD:[their-prs-branch]
git push anything HEAD:bugfix-branch
Now you can check e.g. on GitHub, where you should see the updated pull request. Congrats, you did it! 🎉