I use git for almost all my dev work, is fast, it works locally, and I can even use it as a quick deployment tool, by adding hooks, but when it comes to sharing a repository to other developers, I dont like the idea of creating a user account in the system for each developer, so the easiest and fastest way to solve this issue for me is using gitolite.
In this post I will describe the steps needed to setup a central repository for multiple users. I’m using Centos 5.5 as server and debian as a workstation
Create a user account in the server and install git
[root@bp ~]# useradd -m git
[root@bp ~]# passwd git
[root@bp ~]# yum install git
Copy your public key from our workstation to the server
If you don’t know how to setup an ssh passwordless login, take a look here
ivan@scorpion:~$ scp ~/.ssh/id_rsa.pub git@bp.com:~/ivan.pub
Clone gitolite into the server
ivan@scorpion:~$ ssh git@bp
git@bp: ~$ git clone git://github.com/sitaramc/gitolite
git@bp: ~$ cd gitolite
git@bp: ~$ src/gl-system-install
git@bp: ~$ gl-setup ~/ivan.pub
Go to the workstation to manage the git repo
ivan@scorpion:~$ mkdir -p git/bprepo
ivan@scorpion:~$ cd git/bprepo
ivan@scorpion:~$ git clone git@bp:gitolite-admin
At this point we have 2 folders inside gitolite-admin conf/ and keydir/ the first one is used to create new repositories or add users to repositories the second one is for adding each user public key.
Once you have added new repositories and users you need to do a
git push origin master
on each new repo.