For the server git configuration part, if you're wondering how, Gitosis might be helpful: http://www.hackido.com/2010/01/installing-git-on-server-ubun...

Gitosis is indeed pretty good, but I've recently found better and migrated to gitolite: https://github.com/sitaramc/gitolite

The flexibility is pretty neat. Being able to do brach-based ACL in particular is killer for some environments and larger teams.