I have a master branch and a feature branch. The feature branch has several changes but the master branch has many changes like removing 10 projects from the repository. The
checkout master
checkout -b develop (assuming you don't already have a develop branch)
merge --no-ff your-feature-branch
Resolve any conflicts in code. Test, test test.
checkout master
merge --no-ff develop
Then deploy your code.
I really like this branching model since it always keeps me building features on feature branches, doing final testing on develop. And only ever merging into master. No commits happen on master.