zoukankan      html  css  js  c++  java
  • CentOS6.*安装gitolite

    http://www.kankanews.com/ICkengine/archives/64748.shtml


    2人收藏此文章,


    发表于4小时前(2013-10-22 16:12) ,
    已有26次阅读 ,共1个评论

    安装基础包

    # yum install perl openssh git

    创建git用户

    # adduser git 
    # passwd git

    在git用户家目录下安装gitolite

    切换到git用户

    # su – git

    创建文件夹bin

    $ mkdir bin

    克隆gitolite源码

    $ git clone https://github.com/sitaramc/gitolite.git 
    $ ls 
    bin  gitolite

    安装gitolite

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

    $ cd bin/ 
    $ ls 
    commands  gitolite  gitolite-shell  lib  syntactic-sugar  triggers  VERSION  VREF

    配置gitolite管理员

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

    # ssh-keygen

    复制管理的公钥 

    # cp .ssh/id_rsa.pub /tmp/admin.pub

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

    $ /home/git/bin/gitolite setup -pk /tmp/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 
    bin  gitolite  projects.list  repositories

    管理员日常管理

    管理员clone管理库(此处为本地root用户) 

    # git clone git@192.168.213.130:gitolite-admin 
    Initialized empty Git repository in /root/gitolite-admin/.git/ 
    The authenticity of host ’192.168.213.130 (192.168.213.130)’ can’t be established. 
    RSA key fingerprint is d4:28:ca:66:58:b6:39:c1:aa:37:58:9a:5b:ed:50:05. 
    Are you sure you want to continue connecting (yes/no)? yes 
    # 此处因为第一次ssh连接,所以需要输入’yes’ 
    Warning: Permanently added ’192.168.213.130′ (RSA) to the list of known hosts. 
    remote: Counting objects: 6, done. 
    remote: Compressing objects: 100% (4/4), done. 
    Receiving objects: 100% (6/6), 748 bytes, done. 
    remote: Total 6 (delta 0), reused 0 (delta 0)

    # pwd 
    /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 status 
    # On branch master 
    # Changed but not updated: 
    #   (use “git add <file>…” to update what will be committed) 
    #   (use “git checkout — <file>…” to discard changes in working directory) 

    #       modified:   conf/gitolite.conf 

    # Untracked files: 
    #   (use “git add <file>…” to include in what will be committed) 

    #       keydir/test123.pub 
    no changes added to commit (use “git add” and/or “git commit -a”)

    # git add * 
    # git commit -m “AddRepo:myFirstRepo;AddUser:test123″ 
    [master 4c5a5d0] AddRepo:myFirstRepo;AddUser:test123 
    Committer: root <root@app-node-V-CC.(none)> 
    Your name and email address were configured automatically based 
    on your username and hostname. Please check that they are accurate. 
    You can suppress this message by setting them explicitly: 
        git config –global user.name “Your Name” 
        git config –global user.email you@example.com 
    If the identity used for this commit is wrong, you can fix it with: 
        git commit –amend –author=’Your Name <you@example.com>’ 
    2 files changed, 6 insertions(+), 0 deletions(-) 
    create mode 100644 keydir/test123.pub

    提示是建议设置用户信息(便于多人协作时辨别),可参照提示命令操作(其实git自动为你添加了)

    # git push origin master 
    Counting objects: 10, done. 
    Delta compression using up to 2 threads. 
    Compressing objects: 100% (5/5), done. 
    Writing objects: 100% (6/6), 859 bytes, done. 
    Total 6 (delta 0), reused 0 (delta 0) 
    remote: Initialized empty Git repository in /home/git/repositories/myFirstRepo.git/ 
    To git@192.168.213.130:gitolite-admin 
    48a7307..4c5a5d0  master -> master

    客户验证

    test123用户克隆myFirstRepo库

    $ git clone git@192.168.213.130:myFirstRepo 
    Initialized empty Git repository in /home/test123/myFirstRepo/.git/ 
    warning: You appear to have cloned an empty repository. 
    $ ls 
    myFirstRepo

    test123用户初始化myFirstRepo库

    $ touch test.sh 
    $ git add test.sh 
    $ git status 
    # On branch master 

    # Initial commit 

    # Changes to be committed: 
    #   (use “git rm –cached <file>…” to unstage) 

    #       new file:   test.sh 

    $ git commit -m “InitRepo:myFirstRepo” 
    $ git push origin master 
    Counting objects: 3, done. 
    Writing objects: 100% (3/3), 224 bytes, done. 
    Total 3 (delta 0), reused 0 (delta 0) 
    To git@192.168.213.130:myFirstRepo 
    * [new branch]      master -> master

    SSH非22端口通信

    本地或gitolite服务器使用非ssh默认端口,会出现错误,可通过下列方法解决:

    $ vim ~/.ssh/config

    添加 如下内容

    host ${ip_of_gitolite_server} 
    port ${post_of_yours}

    ubuntu12.04上安装gitolite,照猫画虎就行


    声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。


  • 相关阅读:
    Java实现 LeetCode 209 长度最小的子数组
    Java实现 蓝桥杯 图书排列(全排列)
    Java实现 蓝桥杯 图书排列(全排列)
    Java实现 蓝桥杯 图书排列(全排列)
    C++11 FAQ中文版--转
    rtsp交互命令简介及过程参数描述
    PS流格式
    经典系统windows xp sp3官方原版下载(附XP序列号)
    Darwin Streaming Server 简介
    jrtplib跨网络通讯NAT穿透问题解决方法
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4926847.html
Copyright © 2011-2022 走看看