If you want to host a Git repository there should normally be no shell access for all the people that need access to the repositories. So far many people have used gitosis to achieve this. Now there is a “new kid on the block”, called gitolite. I have not really used it in practice so far, but the added functionality looks promising and I also like the fact that it’s written in Perl. There is also a chapter about it in the Pro Git book.
What about using git-shell?
i.e. you just do useradd –shell /usr/bin/git-shell
Obviously giosis and gitolite offer more features that you might want.