The fact git makes branching and merging so cheap and easy creates a new problem. Go away and work on something else for a while, leave a project and come back or even get distracted with prioritizing another feature or an urgent production hotfix and suddenly, you’ve got a problem. Add in a team environment and you’d better have something agreed.
So, why hasn’t someone come up with a goof-proof(ish) workflow? Well, turns out @nvie has; he’s published git-flow, A successful Git branching model. Been using it for weeks now and have to admit, it just works.
You’ve got production, dev, features and hotfix branches as well as releases to deal with various organizational issues as well as auto merging of things once you’re done. Sweet. And there is a great walkthrough guide to get you used to it. It seriously does make something complex as simple is it should be, so do take a look at it. If you don’t start using it after reading about it, I’d be surprised.