36

When I do a Pull Request on GitHub (against master branch), can we ignore some file changes, like

  • we have one file named 'fileA' in branch 'release', and we have the same file in 'master', but we do some changes in 'fileA' in branch 'release'
  • when we do a Pull Request, is there any way we can ignore the changes in 'fileA', do not let that merge into 'master'.
codeforester
  • 28,846
  • 11
  • 78
  • 104
LongYang0806
  • 603
  • 1
  • 6
  • 9

3 Answers3

22

You can't ignore some files from a pull request selectively. Two workarounds for this can be -

First -

  • Create a new branch from 'release'
  • Replace the non-required files from 'master'
  • Create pull request from this new branch

Second -

  • Create a new branch from 'master'
  • Put changes of required files from 'release'
  • Create pull request from this new branch

Any of this method will work. Which will be easier depends upon how many files are to be included / excluded.

Raj Srivastava
  • 493
  • 6
  • 10
4

As mentioned in https://stackoverflow.com/a/28703636/12138397, it is not possible to exclude files in a Pull-Request, and the alternatives which have been proposed also work.

But there is a simpler solution to it. Here I am considering staging as my target and dev as my source

root
|-- src
|   -- app.py
|-- .gitignore
|-- settings.py
|-- requirements.txt

Let's say, I would want to ignore the settings.py file from being merged

  • First move to the target branch (the branch to which you want to merge the changes)
    git checkout staging
    
  • Then you can use the git checkout command to selective pick the files you want to merge
    git checkout dev src/
    
  • This will only merge the files changed inside src/ folder

    NOTE: You can also do it selectively for each file.

  • Then push to remote repository

    git push origin staging
    

But this solution is useful only if the files to be excluded is small.

Pishu96
  • 41
  • 2
3

Create branch with last commit you agree with:

git branch my-branch <sha>
git checkout my-branch

Select commits you want to pull request as patches:

git format-patch -10 <sha> --stdout > 0001-last-10-commits.patch

Apply patches:

git am < 0001-last-10-commits.patch

Your commits will be as they was. You can git push -u origin my-branch immediately.

Community
  • 1
  • 1
hlcs
  • 4,236
  • 5
  • 35
  • 41