搭建git服务器和权限管理(git + gitolite)

来源:互联网 发布:photoshop破解补丁mac 编辑:程序博客网 时间:2024/05/21 17:10
环境:Ubuntu12
1. 安装ssh, git

    ssh:
        apt-get install ssh
    git:
        apt-get install git

2. 创建项目(Demo为例)
    cd 仓库目录
    git --bare init Demo.git
   
3. clone项目
    git clone serverUsername@serverIP:/仓库目录/Demo.git   
4. gitolite权限管理(服务器以gitUser账号为例)
    a.    为什么使用gitolite
        git本身没有权限管理,使用做gitolite权限管理
    b.    下载,安装($HOME为登录用户的目录)
        git clone git://github.com/sitaramc/gitolite
        mkdir bin
        gitolite/install -ln $HOME/bin
    c.    权限配置
        I.  开发端获取id_rsa.pub文件,并上传到服务器
            ssh-keygen
        II. 生成权限控制服务器
            gitolite setup -pk user1.pub (
            会生成$HOME/repositories/gitolite-admin.git,$HOME/repositories/testing.git项目
            gitolite-admin.git:权限管理项目
            testing.git          :测试项目
            其他开发项目可以在$HOME/repositories/目录下创建,通过(git --bare init 项目名.git)
    d.    权限管理
        user1端:git clone serverUsername@serverIP:gitolite-admin.git

        权限管理:配置conf/gitolite.conf

        添加新的用户:keydir目录下添加此用户的id_rsa.pub,修改为此用户的名称

        保存,并提交:git commit -a, git push
        ##如果没有用户有权限,可以配置服务器gitolite-admin.git/gl-conf文件
    e.    账号设置连接权限(git账号为例):
        修改文件/etc/passwd
        git:x:1001:1001:,,,:/home/git:/bin/bash
        改为:
        git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
    f.    查看文件
        git cat-file -p 8a+文件名
        例如:objects/8a/67f6bdb56d59507d09455821dbbe0115cf107f
        命令:git cat-file -p 8a67f6bdb56d59507d09455821dbbe0115cf107f   

0 0