

























In this post we will be looking at how to self-host git using gitolite.
First off, you will have to decide if you are ok with using the (slightly older) version in the Ubuntu package repository.
Right now, gitolite is at version 3, while the version in the LTS repository is 2.
Moving on, in this guide we will be using the repository version.
Use apt-get to install gitolite
sudo apt-get install gitolite
After that’s done, we proceed with configuring gitolite:
sudo dpkg-reconfigure gitolite
You will be presented with some pretty dialog… dialogs with the following questions:
System username for gitolite
You can leave the default gitolite username, but if you want to type less when cloning git repositories, you can set it to git (don’t forget to check if the username not already taken by something else on the system)
Repository path
If you are unsure, you can leave the default.
Personally, I prefer /home/gitolite
Administrator’s SSH key
You can either upload your public key file (you do have one, right? if not, see here) somewhere on the server and input the path to the file, or paste it directly.
Gitolite operates under the principle that you have an administrative repository, and you configure everything from there.
Therefore, we clone the administrative repository:
git clone GITOLITE_USERNAME@SERVER_ADDRESS:gitolite-admin.git
For example:
git clone git@192.168.0.146:gitolite-admin.git
This URI scheme assumes you are using the standard SSH port (22).
If that is not the case, you will have to use the following, lengthier syntax:
git clone ssh://GITOLITE_USERNAME@SERVER_ADDRESS:SERVER_PORT/gitolite-admin.git
Example:
git clone ssh://git@192.168.0.146:12345/gitolite-admin.git
By default, the gitolite administrative repository looks like this:
gitolite-admin/
|-- conf <-- configuration dir
| `-- gitolite.conf <-- configuration file
`-- keydir <-- key store directory
`-- admin.pub <-- key file, must end in .pub
We edit the gitolite-admin/conf/gitolite.conf file and add the following:
repo REPOSITORY_NAME
RW+ = USER_KEY_NAME
For example:
repo testing
RW+ = admin
The permission types are:
Save the config file then commit the changes:
git add .
git commit -m "created testing repository"
git push
Git documentation is outside the scope of the tutorial.
Congratulations! You now have a new repository which you can clone like so:
git clone git@192.168.0.146:testing.git
And that’s it!
But what if we want to give someone else access to our repository?
First, you need to add his or hers ssh public key to the keydir folder in a file with the following name: user.pub
After that, we edit the gitolite.conf file and add the user to the appropriate directory.
From the gitolite-admin folder, we save and push everything:
git add -A .
git commit -m "added user XXX"
git push
And that should be it.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。