If you are not using Git (or at least subversion), then stop what you are doing right this minute and get on that! There is no excuse not to be using a code repository, regardless of whether it's just you or a whole team of developers. And if you are, then congrats!
One of my former employers did not use Git. We relied on our IT department's daily code backups. In the few events that we needed to rollback code, it was a nightmare. You had to know the exact date and there could be a lot of code from one day to the next. But this is not a blog post meant for me to complain about a former employer but rather a post about the importance of Git, first and foremost, but also a blog that goes a step beyond that into using proper Git workflows and branching models.
There is an excellent blog post from Vincent Driessen on how to successfully employ a Git branching model. I highly recommend you read it and incorporate it into your Git workflow. It's better late and than never.