I was thinking about migrating my personal projects from subversion to git, to be able to practice git usage and learn more about git workflows.
I'm reading right now Pro git, and it mentions gitosis and gitolite. It seems that both allow you to have private repositories, and they are configurated by changing a configuration file and pushing it to server again, so I decided to install gitolite, because it has more fine-grained permissions, allowing you to control who can push to different branches of same repository.
As I have a debian-based machine (an ubuntu server, namely), gitolite is quite easy to install following instructions you can find anywhere in internet through google. I've used these instructions (after updating my server from Jaunty to Natty, as explained here. Gitolite didn't have a .deb package in ubuntu repositories until 10.10 version, I believe).
Once you have installed, gitolite works perfectly, allowing you to practice another git workflows. In case you need, you can install also gitweb, to have read-access to projects in your repository. As usual, there are a lot of resources in internet explaining how-to, I used instructions shared here.