There are different workflows you can use.
Pretty common is a feature branch principle. You have the master branch, which is the stable / production banch and the develop which is the ,...development branch :D
Then you create a branch for every feature you are developing and if its finished it gets merged into the develop.
Another approach is git flow where you also keep seperate branches for your features but also for releases, bugfixes etc.
Here is a pretty good ressource Git Workflows