Yes. We use branches a lot at our startup. Typically our workflow goes as follows:
1) git checkout master
2) git pull // to fetch latest version
3) git branch issues/feature name
4) git checkout branch name
//...do work on branch...//
5) git add .
6) git commit -m "Description of commits"
7) repeat 5) and 6) until feature/issue is fully implemented/fixed
8) git push origin banch name
9) git checkout master
10) git merge branch name // only after the issue/feature is tested and debugged
11) git push origin master