Home » Git » GitHub: Accept Pull Request, But Only Some Commits

GitHub: Accept Pull Request, But Only Some Commits

Posted by: admin November 15, 2021 Leave a comment

Questions:

Say you’ve got a user who made a few commits and rolled them into one pull request. You want to accept one of the commits, but reject the others. Is this possible with GitHub?

Answers:

Next to the “Merge pull request” button, there should be a “Use the command line” link to instructions on how to do it manually. You should follow these instructions (create new local branch and pull in their changes), but then instead of merging that whole branch back into master, you just cherry-pick the commits you want.

e.g. to review a pull request from user: jashkenas, in their branch: new-feature

git checkout -b jashkenas-new-feature master
git pull https://github.com/jashkenas/YOUR_REPO_NAME.git new-feature

And then do your testing, and then when you’re ready:

git checkout master
git cherry-pick COMMIT_HASH_1
git cherry-pick COMMIT_HASH_2
# etc
git push origin master

###

Yes, you can manually accept certain commits using git-cherry-pick and then close the pull request.