CentOS 如何安装git server + Gitolite 【配置不成功需要再测试2015-8-20】
安装git
关于安装git 可以参考 http://gitolite.com/gitolite/install.html 里面有官方的介绍
cd git-2.3.5
Normally you can just do "make" followed by "make install", and that
will install the git programs in your own ~/bin/ directory. If you want
to do a global install, you can do
$ make prefix=/usr all doc info ;# as yourself
# make prefix=/usr install install-doc install-html install-info ;# as root
(or prefix=/usr/local, of course).
我这采用的是:
make prefix=/usr/local all
make prefix=/usr/local install
git --version #如果能显示版本号,即表示成功
5. 为git增加专门用户
# adduser git
# passwd git
在git用户家目录下安装gitolite
6. 切换到 git用户
# su – git //记住 切换后默认计入 git 家目录
如果切换后 变成
bash-4.1$ 请参考 linux问题: 切换用户之后变成-bash-4.1$
7. 创建文件夹bin
$ mkdir bin //如果不在 git家目录下 可以 输入 $mkdir -p $HOME/bin
8. 克隆gitolite源码
$ git clone https://github.com/sitaramc/gitolite.git
$ ls
bin gitolite
$ ./gitolite/install -to /home/git/bin/ 或 $ gitolite/install -to $HOME/bin
$ cd bin/
$ ls
commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF
配置gitolite管理员
10. 生成管理员账户的公钥
# ssh-keygen (此处指定本地root用户为管理员,键入回车使用默认值)
复制管理的公钥
# cp .ssh/id_rsa.pub /tmp/git.pub
11. 切换回git用户,为gitolite配置管理员
$ /home/git/bin/gitolite setup -pk /tmp/git.pub
bin gitolite projects.list repositories
管理员日常管理
12. 管理员clone管理库
/root/gitolite-admin
# ls
conf keydir
例如某test123用户访问git服务器上的myFirstRepo库
test123用户向git服务器管理(此处是之前的服务器本地的root用户)提交自己的ssh无密码公钥
管理员将test123的公钥复制到 gitolite-admin/keydir/ 下
# cp test123.pub /root/gitolite-admin/keydir/
管理员创建myFirstRepo库,并给test123分配权限
# cd gitolite-admin/conf/
# vim gitolite.conf
默认内容为:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
下边定义myFirstRepo库,并且指定用户权限:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
@myGroup=admin test123
repo myFirstRepo
RW+ = @myGroup
注:此处@myGroup是一个组,给myGroup组赋予对myFirstRepo这个库的读、写、推送的权限(详细规则可参考gitolite的readme.txt)
管理员将对gitolite-admin的修改(建库、加用户)提交到git服务器
# pwd
/root/gitolite-admin# git add *
# git commit -m
或者命令如下:
把gitolite-admin下的变更都commit,并push到服务器上
git add keydir
git commit -m "added foo repo, gave access to Jason"
git push