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! 🎉