基于linux的Git平台的部署与Gitolite使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于linux的Git平台的部署与Gitolite使用相关的知识,希望对你有一定的参考价值。

基于linux的Git平台的部署与使用

  1. 系统环境
    #cat /etc/redhat-release 
    CentOS Linux release 7.3.1611 (Core)
  2. 安装git
    ##yum安装git
    #yum -y install git
  3. 创建git用户及设置密码
    #useradd git
    #passwd git
  4. Gitolite使用说明
    Gitolite管理的方式是给你一个特殊的仓库,修改,提交,推送到服务器就可以了,这个仓库只可以管理员访问,现在把管理员的公钥复制到服务器上(可以和Git服务器在同一台服务器上也可以在不同的服务器上)
  5. 管理员公钥复制
    #su - git
    $ pwd
    /data/git  (可以在其他目录下创建,最好在git账户的家目录下)
    $ touch admin.pub
    将管理员的公钥放到admin.pub文件里(只能放一行,即只能有一个管理员账号)
  6. 安装Gitolite和配置
    ##在git用户上进行安装
    #gitolite will install here
    $ pwd
    /data/git
    $ mkdir bin  (最好在git账户的家目录下)
    #get the source code
    $ git clone git://github.com/sitaramc/gitolite.git
    #install
    $ ~/gitolite/install -to ~/bin
    #setup
    $ ~/bin/gitolite setup -pk ~/admin.pub
    $ ls
    admin.pub  bin  gitolite  projects.list  repositories
  7. 管理用户进行测试

    ##以下操作均在mac上进行!
    ##管理员公钥添加的是我mac本的
    ?  ~ ssh -p 58000 [email protected]
    ##应该看到类似这样的输出:
    hello git, this is [email protected] running gitolite3 v3.04-20-g6328ec2 on git 1.7.9.5
    
    R W   gitolite-admin
    Connection to localhost closed.closed
    ##将管理仓库克隆下来管理Git服务器
    ?  git clone ssh://[email protected]:58000/gitolite-admin (非标准ssh端口)
    ##将会看到如下两个目录文件:
    ?  gitolite-admin git:(master) ls
    conf   keydir
  8. 添加用户
    ##以下操作均在mac上进行
    git:(master)   pwd
    git:(master)   /Users/wtf/gitolite-admin/keydir
    git:(master)   touch shiyan.pub
    ##将用户shiyan的公钥写入shiyan.pub文件里!
    git:(master)   vim shiyan.pub
    git:(master)   pwd
    git:(master)   /Users/wtf/gitolite-admin
    git:(master)   git add keydir
    git:(master)   git commit -m "add new user shiyan"
    git:(master)   git push
    git:(master)   ls
    shiyan.pub
  9. 添加/创建仓库
    ##我们现在要创建一个名为datagrand1的仓库,让刚创建的datagrand1有读写权限,并将其给予用户shiyan使用。
    git:(master)  pwd
    /Users/wtf/gitolite-admin/conf
    ##添加类似下面这内容进去
    repo datagrand1
    RW+    =   shiyan
    保存,提交并推送到远和服务
    git:(master)  pwd
    /Users/wtf/gitolite-admin
    git:(master)  git add -u
    git:(master)  git commit -m ‘add new repo datagrand1 and assign RW+ to shiyan‘
    git:(master)  git push
    ##推送的时候应该看到类似这样的信息
    Counting objects: 7, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (4/4), 395 bytes, done.
    Total 4 (delta 1), reused 0 (delta 0)
    remote: Initialized empty Git repository in  xxxxx
    To [email protected]:gitolite-admin
    6de90b8..52737aa  master -> master
     ##注意remote开头的一行,它已经帮你创建了这个仓库
  10. 使用clone仓库
    ##在shiyan账户的终端上进行操作
    $ git clone ssh://[email protected]:58000/datagrand1 (非标准ssh端口)

以上是关于基于linux的Git平台的部署与Gitolite使用的主要内容,如果未能解决你的问题,请参考以下文章

centos+git+gitolite 安装和部署

版本控制系统(git + gitolite)

使用linux安装gitolite管理git

Gitolite配置管理和GIT基本操作

使用Gitolite搭建Git服务器

linux服务器上搭建gitolite实现对git server的版本库的权限控制