The following workflow is what I use when I want make changes and have them committed to GitHub:
$ git checkout -b NewBranch
# Creates a new branch from origin/master for working on a specific feature and immediately switches to that branch. At this point you can add the feature you want.
$ git commit -a -m 'added a new function'
# Commits the changes to the NewBranch
$ git checkout master
$ git merge NewBranch
# Merging the changes we did in NewBranch with origin/master
$ git branch -d NewBranch
# Deletes the NewBranch as it’s no longer needed
Pushing changes to remote repository
$ git push origin
# Pushes all the changes from the master branch to the origin repository
git push origin
My comment as an answer:
I normally work with the branches a little different. I push after I committed to the branch. So the branch will land within github. There you can create the Pull Request. Merge your changes to the master (without deleting the branch) and do your "private" changes on the master. Whenever you push to the Pull Requested branch the commit will automagically added to the pull request.