Production Deployments
There is no right answer to this as it comes down to your preferences, constraints and requirements for the production environment. Depending on how sensitive this environment is (and it sounds like you are talking about an insensitive system with a small number of users), you want to make sure that any new features that you deploy are well tested and do not break expected functionality. You can achieve this for example using a staging environment, setting up continuous integration, using Blue/Green deployments or Canary Releases, etc.
Perhaps the following article will be a good starting point: Deploy to Production - likewise, you will find many tips on the topic of CI/CD here on Stack Overflow and in other parts of the interweb.
Git Branching
In general, I would suggest using a git workflow such as Vincent Driessen's branching model, using git tags and ensuring your feature branches are kept small, that is one branch for each feature or bug fix. This will limit the uncertainty of merging many changes into the master branch at once and help you with testing your code.
For your particular situation, why not create a git tag on the master branch and merge in the feature branch after testing it? You can then create a new tag and release it to production. If you encounter any errors after deploying, you can always rollback and deploy the previous tag or create a bug fix branch to solve the problem.
Create a tag in GitHub repository