Centos搭建Git服务器和Gitolite详细设置

最近给团队搭建Git服务器,路径曲折,记下来以备查询,内部服务器用的Centos6.4 64位版本,git

安装Git

  • 安装git

    首先安装git所需的库:

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
    

    下载Git安装文件

    wget http://git-core.googlecode.com/files/git-1.9.0.tar.gz
    

    安装

    tar zxvf git-1.9.0.tar.gz
    cd git-1.9.0
    make prefix=/usr/local all
    make prefix=/usr/local install  #root用户运行
    
  • 安装gitolite
    先创建一个用户git并生成ssh-key

    //创建一个git用户和用户组,并创建用户文件夹
    sudo useradd -c 'git version manage' -m -d /home/git -s /bin/bash --users-group  git
    //修改密码
    passwd git
    //生成git的ssh-key
    su git
    ssh-keygen -t rsa -C "your name"
    ssh-copy-id git@127.0.0.1
    

    输入ssh git@127.0.0.1,看能不能免密登陆。 下载gitolite

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

    开始安装

    mkdir bin
    ~/gitolite/install -to ~/bin
    mv ~/.ssh/authorized_keys ~/git.pub
    ~/bin/gitolite setup -pk ~/git.pub
    

    成功后会初始化两个版本库 /home/git/repositories/gitolite-admin.git /home/git/repositories/testing.git 测试是否安装成功

    ssh git@127.0.0.1
    

    输出如下就表示成功:

    hello git, this is git@linux-dev running gitolite3 v3.5.2-4-g62fb317 on git1.8.1.2
    
    R W    gitolite-admin
    R W    testing
    

    添加管理员秘钥

    git clone git@127.0.0.1:gitolite-admin.git
    

    在开发机上生成ssh公钥,上传到gitolite-admin/keydir目录下,以用户名命名。

    scp ~/.ssh/id_rsa.pub git@server:/tmp/id_rsa.pub
    

    编辑配置文件:

    @admin = admin git
    @all = admin dev1 dev3 dev2
    repo pub/CREATOR/.+$
        C       =   @all
        RW+     =   CREATOR
        RW      =   WRITERS
        R       =   READERS @admin
    repo gitolite-admin
        RW+     =   @admin
    
    repo testing
        RW+     =   @all
    
配置完成,提交,各用户即可在对应用户名目录下建立仓库并分配权限

标签: centos, git, gitolite

添加新评论