服务器版本:centos6.5


第一步:安装git服务器(root用户)

    直接用yum安装就行

       yum install -y git


因为CentOS默认的perl少了这个模块,所以要安装perl

yum install perl



创建git用户

# useradd git

# passwd git


安装gitolite


切换到git用户

# su - git

创建bin目录

$ mkdir bin

下载gitolite安装包

$ git clone git://github.com/sitaramc/gitolite


安装gitolite源码包

$ ./gitolite/install -to /home/git/bin/

现在gitolite 的安装完成,可以查看bin目录里的内容。



配置gitolite管理员

切换为root,生成管理员账户的公钥(此处指定本地root用户为管理员,键入回车使用默认值)

# ssh-keygen

复制管理员root的公钥到任意路径

# cp .ssh/id_rsa.pub /home/git/admin.pub

切换回git用户,为gitolite配置管理员,即root

# su - git

$ /home/git/bin/gitolite setup -pk /home/git/admin.pub

    

   Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/

   Initialized empty Git repository in /home/git/repositories/testing.git/

   WARNING: /home/git/.ssh missing; creating a new one

   WARNING: /home/git/.ssh/authorized_keys missing; creating a new one

$ ls #新产生一个文件和一个目录

$ ls repositories/ #项目仓库存放的地方,默认自带了 gitolite-admin testing.git两个库,



管理员管理gitolite仓库

管理员clone管理仓库


# git clone git@gitserverip:gitolite-admin #管理员root可以无验证clone管理仓库,因为root的公钥admin.pub已经编译到gitolite中, 第一次密码验证后就

可以免秘钥提交了


管理员添加其他用户——添加普通用户key,做成免秘钥既可

#cp ~/.ssh/username_id_rsa.pub /root/gitolite-admin/keydir/username.pub

#cd gitolite-admin

#git add *

#git commit -a -m “add username.pub”

#git push origin master


管理员创建仓库,并给用户授权

# cd gitolite-admin/conf

# vim gitolite.conf

    @SA = wd pc rock #可以定义用户组

    @projects = foo gitolite-admin #项目也可以分组

    @admin = @project testing #组里面还可以包含组


    repo @all #@all是一个神奇的group,即能表示所有的repo,也能表示使用的users,

        R = @SA gitweb deamon #@SA组的成员能够读所有的项目仓库

    repo @project #project仓库组里的所有项目对wd开所有权限

        RW+ = wd

    repo gitolite-admin #系统自带管理库必须管理员才能操作。设置是root

        RW+ = admin

    repo testing #系统自带test库任何人都可以操作

        RW+ = @all

    repo foo #新建的库foo

        RW+ = wd #权限设置,所有权限

        - master = pc #pc禁止对master分支的任何操作

        RW = woniu #woniu 可以读写

        R = @SA #组权限设置.只读

#git add gitolite.conf

#git commit -m "added foo"

#git push origin masteer 


创建完成