As you know, a way to contribute to a project without being a collaborator is to fork a project, create a branch, make the changes in your new branch, and submit the new branch as a pull request.
There are certain things I’d like to add to a project (like Bash scripts and the annotate, rails-erd, and railroady gems), but the project collaborators don’t want them. I understand now that they don’t expect me to suck it up and do things their way. Instead, they want me to keep those features on just my own personal branch but push other changes.
How do I go about doing this? Do I make the changes to my personal fork’s master branch or a different branch? When the upstream repository is updated, how do I update my personal branch to incorporate these changes WITHOUT wiping out my personal features?