如果不知道gitolite是什么,那么这篇文章与你无关

创建git用户

sudo useradd -m git -u 1001 -c "git" -s /bin/bash

准备管理员 ssh key

同一台服务器上的另一位用户(evan)作为管理员。

evan@evan-X99:~$ ssh-keygen -t rsa
evan@evan-X99:~$ scp .ssh/id_rsa.pub git@127.0.0.1:~/evan.pub

安装gitolite

参考文档 readme

git@evan-X99:~/tools$ git clone -b v3.6.9 --depth=1 https://github.com/sitaramc/gitolite.git gitolite_v3.6.9
git@evan-X99:~/tools$ mkdir -p $HOME/bin
git@evan-X99:~/tools$ gitolite_v3.6.9/install -to $HOME/bin

创建仓库

git@evan-X99:~/tools$ git config --global init.defaultBranch master
git@evan-X99:~/tools$ $HOME/bin/gitolite setup -pk ~/evan.pub

Do NOT add new repos or users manually on the server. Gitolite users, repos, and access rules are maintained by making changes to a special repo called “gitolite-admin” and pushing those changes to the server.

注意: 不要手动添加用户和仓库,对于gitolite的管理全部通过gitolite-admin仓库的修改提交推送来完成。

管理仓库

evan@evan-X99:~/tools$ git clone git@127.0.0.1:gitolite-admin

克隆管理员仓库时,如果被要求输入密码,说明上一步的配置有问题

evan@evan-X99:~/tools/gitolite-admin$ ls
evan@evan-X99:~/tools/gitolite-admin$ tree
.
├── conf
│   └── gitolite.conf
└── keydir
    └── evan.pub

2 directories, 2 files
evan@evan-X99:~/tools/gitolite-admin$ cat conf/gitolite.conf
repo gitolite-admin
    RW+     =   evan_id_rsa

repo testing
    RW+     =   @all
evan@evan-X99:~/tools/gitolite-admin$

更多推荐