Setup Gitolite on Ubuntu (Maverick)

Below is a quick guide to installing Gitolite on Ubuntu.

  1. Create an SSH public/private key pair

    [silas@client]$ ssh-keygen -t rsa
    
  2. Upload the public key to the server

    [silas@client]$ scp ~/.ssh/id_rsa.pub user@server.example.org:/tmp/user.pub
    
  3. SSH to the server and become root

    [silas@client]$ ssh user@server.example.org
    [silas@server]$ sudo su -
    
  4. Install gitolite

    [root@server]# apt-get install gitolite
    
  5. Switch to the gitolite user

    [root@server]# su - gitolite
    
  6. Run the Gitolite setup script

    [gitolite@server]$ gl-setup /tmp/user.pub
    
  7. From your client computer clone the gitolite-admin repository

    [silas@client]$ git clone gitolite@server.example.org:gitolite-admin
    Cloning into gitolite-admin...
    remote: Counting objects: 6, done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 6 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (6/6), done.
    
  8. Switch to the gitolite-admin directory

    [silas@client]$ cd gitolite-admin
    
  9. Create a test repository

    [silas@client]$ vim conf/gitolite.conf
    [silas@client]$ git commit -a -m "Add test repository"
    [master 507045a] Add test repository
     1 files changed, 3 insertions(+), 0 deletions(-)
    [silas@client]$ git push
    Counting objects: 7, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (4/4), 376 bytes, done.
    Total 4 (delta 1), reused 0 (delta 0)
    remote: Already on 'master'
    remote: creating test...
    remote: Initialized empty Git repository in /var/lib/gitolite/repositories/test.git/
    To gitolite@server.example.org:gitolite-admin
       87cc470..507045a  master -> master
    
  10. Clone the test repository

    [silas@client]$ git clone gitolite@server.example.org:test
    Cloning into test...
    warning: You appear to have cloned an empty repository.
    
  11. Add a README file to the test repository

    [silas@client]$ echo "Test Repo" > README
    [silas@client]$ git commit -a -m "Initial commit"
    [master (root-commit) 4a49ee0] Initial commit
     1 files changed, 1 insertions(+), 0 deletions(-)
     create mode 100644 README
    
  12. Push the changes to the server

    [silas@client]$ git push origin master
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 218 bytes, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To gitolite@server.example.org:test
     * [new branch]      master -> master
    

Check out the Gitolite wiki for more documentation.

Licensing information is available on the about page, for additional questions or comments feel free to contact me.