I was looking recently at options to set up a simple shared Git repository for one of the web projects I worked on.
My initial requirement was to make this work using local Ubuntu users and groups (I am aware of tools that can manage Git users and groups better but did not have time to investigate this further at that time - I use serevice provided by Bitbucket), and users would be able to push and pull over SSH (that was running on the machine already) between theirs local development repository and remote main repository.
Below I give steps for two scenarios that can be used to create Git shared repository for a project. I tested both and they worked for me well.
Create new empty shared Git repository