安装git
在centos
系统上安装git
1 | yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel |
接下来我们 创建一个git用户组和用户,用来运行git服务
1 | groupadd git |
安装gitolite
使用gitolite
对git库进行权限控制
客户端生成密钥
1 | ssh-keygen #疯狂回车即可 |
上传你本机的公钥到git服务器git用户的家目录,来为gitolite
的管理员授权
1 | scp ~/.ssh/id_rsa.pub root@yourServer:/home/git/admin.pub |
在服务器上安装gitolite
注意,进入
.ssh
目录,如果存在authorized_keys
,删除即可。
1 | # 切换到git用户 |
测试是否执行成功
首先git根目录下是否生成了projects.list
和repositories
同时可以进入.ssh
,可以看到新生成的authorized_keys
,以后每一次提交新用户都会写到这个里边。判断是否用户添加成功,看这个里边文件是否新增了那个用户的key
即可。
客户端clone gitolite-admin
来控制权限
在客户端修改gitolite
的配置文件,然后push
到服务器上完成权限更新
1 | # 结尾不需要加.git |
在客户端修改gitolite
配置
gitolite-admin
只有2个文件夹,conf/gitolite.conf
控制权限配置,keydir
目录用来存放所有客户端的公钥
举个栗子
1 | # gitolite.conf |
修改完配置之后直接push到远端仓库既可以。如果是新建的空仓库,只需要在配置里面写上名字,push
更新之后gitolite
会自动在/home/git/repositories
目录新建你配置的仓库。
访问远程仓库的地址一般是git@yourServer:yourRepoName.git
gitolite
的详细配置可以参考此处Git-Gitolite