master TOC | main page | single-page | license | New: Gitolite Essentials book

This is for gitolite "g3"; for older (v2.x) documentation click here

1 installing gitolite

NOTE: if you're migrating from g2, there are some settings that MUST be dealt with before running gitolite setup; please start here. RTFM is mandatory for migrations.

This is the first step in using gitolite, and happens on the server. It is followed by setup, then clone.

1.1 notes and naming conventions

Gitolite uses a single "real" (i.e., unix) user to provide secure access to git repos to any number of "virtual" users, without giving them a shell.

The real user used is called the hosting user. Typically this user is git, and that is what we will use throughout the documentation. However RPMs and DEBs create a user called gitolite for this, so adjust instructions and examples accordingly.

Unless otherwise stated, everything in this page is to be done by logging in as this "hosting user".


1.2 requirements

1.2.1 your skills

1.2.2 server

Also see the WARNINGS page for important information of general use.

1.2.3 client

1.3 getting the software

git clone git://

(Do I need to mention that you can optionally check out a specific tag if you wish, as long as it's not too old?)

1.4 the actual install

Note: This section describes installing an ssh-based setup. For smart http setup click here.

Gitolite has only one server side "command" now, much like git itself. This command is gitolite. You don't need to place it anywhere special; worst case you run it with the full path.

"Installation" consists of the following options:

  1. Keep the sources anywhere and use the full path to run the gitolite command.
  2. Keep the sources anywhere and symlink just the gitolite program to some directory on your $PATH.
  3. Copy the sources somewhere and use that path to run the gitolite command.

Option 2 is the best for general use.

There is a program called 'install' that helps you do these easily. Assuming your cloned the repo like this:

git clone git://

you can run the 'install' command in 3 different ways:

# option 1

# option 2
gitolite/install -ln
# defaults to $HOME/bin (which is assumed to exist)
#   ** or **
# or use a specific directory (please supply full path):
gitolite/install -ln /usr/local/bin

# option 3
# (again, please supply a full path)
gitolite/install -to /usr/local/gitolite/bin

Creating a symlink doesn't need a separate program but 'install' also runs git describe to create a VERSION file, which, trust me, is important!

Next step: run setup.

1.5 upgrading

1.6 packaging gitolite

Gitolite has broad similarities to git in terms of packaging requirements.

With that said, here's one way to package gitolite: