Use the master branch only for pull requests from the test branch for code/changes that work.
Use the test branch to commit any untested or non-working changes.
Create new branches whenever working on projects and making changes while other groups of people are also working on different projects. Once you are finished working on your project, make a pull request to merge your branch's changes into the test branch.