Pull-Request for only certain files/commits

GitGithubGit CommitPull Request

Git Problem Overview


I have a repository that is forked from GitHub that has a few modifications made to it. However, in a certain commit, a few files were changed that I want to submit a pull-request for, leaving the other modified files out of the request.

Do pull requests merge all commits, or do I need to do something special to isolate this commit?

Git Solutions


Solution 1 - Git

A pull request being made of whole commits, you need to split this commit into two separate commits one containing the change to put in the pull request, and the other holding the other changes. To do this you need git rebase -i, see for example https://stackoverflow.com/q/4307095/11343 for a good explanation on how to do it.

Once you have split the commit, move the ones you want to include into a topic branch, see for example https://stackoverflow.com/q/2369426/11343, but it depends if the commits that make your pull request are sequential.

Then finally you can push to Github and create the pull request from your topic branch.

Solution 2 - Git

Pull requests merge branches. So if you want to isolate some things for a pull request, best is to put those changes in a separate branch.

Advantage is that you can change the pull request by pushing new changes to that branch (even push -f if you need to change already pushed commits).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionQix - MONICA WAS MISTREATEDView Question on Stackoverflow
Solution 1 - GitCharlesBView Answer on Stackoverflow
Solution 2 - GitIkkeView Answer on Stackoverflow