zoukankan      html  css  js  c++  java
  • 基于gitosis的Git云端服务器配置

    (本文需要自己实践,由于时间关系,我仅仅是做了整理和快速的练习,至于笔记中的账号和ip域名都是我参考文章中的。如果读者有任何问题欢迎留言和发邮件到luoquantao@126.com)

    硬件:云端阿里云服务器 

    软件:云端:gitosis + git + ssh

       本地:cygwin 或者 gitbash

    参考文章:http://www.open-open.com/lib/view/open1349849744275.html

         http://bdxnote.blog.163.com/blog/static/844423520124137333373/

         http://book.51cto.com/art/201107/278832.htm

           http://blog.csdn.net/ice520301/article/details/6142503

           http://blog.csdn.net/markddi/article/details/8289774

    详细步骤如下:

    1:创建git账号用于管理git服务器

      useradd -s /bin/bash -d /home/git -G root -m -c "Manager for git server" -p git git
         其中,-p:指定账户git的密码;
            -m:强制创建git账户的home目录;
            -d:指定git账号的home目录;
            -s:指定git账号的登录shell;
            -G:指定git账户所属的用户组;
            -c:指定git账号的描述;

      passwd git 设置git的密码:此处设置为git

      如果在后面使用sudo的时候报错,需要修改/etc/sudoers文件

    2: 升级系统

      sudo apt-get update

      sudo apt-get upgrade

    3: 安装git相关的组件(包括git、openssh)

      sudo apt-get install git-core openssh-server openssh-client

    4:安装gitosis

      4-1:初始化git服务器所管理的账户(提交代码时的账号)

        git@zxk:~$ git config --global user.name "zxk"
           
    git@zxk:~$ git config --global user.email "zxk@163.com"

      4-2:安装python的setup tool,为安装gitosis做准备

        git@zxk:~$ sudo apt-get install python-setuptools

      4-3:获取gitosis安装包

         git@zxk:~$ mkdir ~/.gitosis_setop
            
    git@zxk:~$ cd ~/.gitosis_setop/
             
    git@zxk:~/.gitosis_setop$ git clone git://eagain.net/gitosis.git
             如果这个不行:
             Cloning into 'gitosis'...
             fatal: unable to connect to eagain.net:
             eagain.net[0: 208.78.102.120]: errno=Connection refused
             则可从如下位置clone gitosis包:
             git clone 
    https://github.com/res0nat0r/gitosis.git

      4-4:安装gitosis包

         git@zxk:~/.gitosis_setop$ cd gitosis/
            
    git@zxk:~/.gitosis_setop/gitosis$ sudo python setup.py install
             若报错,可通过如下命令解决:
             git@zxk:wget http://peak.telecommunity.com/dist/ez_setup.py
             git@zxk:python ez_setup.py

      4-5:生成ssh公钥,并上传到git服务器上,或直接使用git账户在git服务器上生成,现在采用git账户直接在git服务器上生成。

         git@zxk:~$ ssh-keygen -t rsa

        4-6:初始化gitosis

         git@zxk:~$ sudo -H -u git gitosis-init < ~/.ssh/id_rsa
             Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
             Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

         gitosis默认会把git仓库房子git账户的目录下:也就是/home/git下面

         gitosis的有趣之处在于,它通过一个git仓库管理配置文件

        仓库就放在/home/git/repositories/gitosis-admin.git, 我们需要对一个文件加个权限

         git@zxk:~$ pwd
             /home/git
             
    git@zxk:~$ chmod 755 repositories/gitosis-admin.git/hooks/post-update

      4-7:配置gitosis, 以控制git客户端的操作

       git@zxk:~$ git clone git@192.168.0.251:repositories/gitosis-admin.git

          git@zxk:~$ cd gitosis-admin/
          
    git@zxk:~/gitosis-admin$ vi gitosis.conf 
          [gitosis]
          loglevel = DEBUG

          [group gitosis-admin]                 #gitosis-admin为git组名;
          witeable = gitosis-admin              #gitosis-admin为仓库名;
          members = 
    git@zxk root@zxk zxk@zxk

          #下面两个group配置实现把仓库teamwork的只读权限分配给git组team;
          #同时,把仓库teamwork的可写权限分配给git组team_ro;
          [group team]                          #team为git组名;
          writable = teamwork                   #teamwork为仓库名;
          members = 
    a@svr b

       

          git@zxk:~/gitosis-admin$ git add -A
          
    git@zxk:~/gitosis-admin$ git commit -m "init gitosis-admin config gitosis.conf"
          [master 2691646] init gitosis-admin config gitosis.conf
          1 file changed, 4 insertions(+)

          git@zxk:~/gitosis-admin$ git push origin master
          
    git@192.168.0.251's password: 
          Counting objects: 5, done.

      4-8:创建一个仓库的存储位置,并初始化

       git@zxk:~$ mkdir -p /repo/top1

          git@zxk:~$ cd /repo/top1/
          
    git@zxk:/repo/top1$ git init --bare

          #在当前项目仓库中配置访问该仓库的用户信息:
          
    git@zxk:/repo/top1$ git config --add user.name "zxk"
          
    git@zxk:/repo/top1$ git config --add user.email "zxk@163.com"
          
    git@zxk:/repo/top1$ git config --add user.name "bliss"
          
    git@zxk:/repo/top1$ git config --add user.email "bliss@163.com"
          
    git@zxk:/repo/top1$ git config --add user.name "dummy"
          
    git@zxk:/repo/top1$ git config --add user.email "dummy@163.com"
          这些信息被添加在当前项目仓库的.git/config文件的[user]段中了;

          如果git config命令加上--global选项,那些这些用户信息就会被添加到~/.gitconfig文件的[user]段中;
          如:
          
    git@zxk:/repo/top1$ git config --global --add user.name "zhangsan"
          
    git@zxk:/repo/top1$ git config --global  --add user.email "zhangsan@163.com"

          如果git config命令加上--file选项,那些这些用户信息就会被添加到--file所指定的文件的[user]段中;

      4-9:在客户端直接clone该仓库就可以了;

       git clone zxk@192.168.0.251:/repo/top1 test
          然后初始化第一个版本的数据并提交;

  • 相关阅读:
    Java 报错 -source 1.5 中不支持 diamond 运算符
    MacBook Java开发环境的配置
    MacBook 版本控制工具
    版本控制工具 Git SourceTree SSH 连接码云
    接口 请求https接口
    快递 共享电子面单
    快递 已发货订单重新打印电子面单
    SQL Server 分部分项导入后 数据的修改
    Hive数据的存储以及在centos7下进行Mysql的安装
    Hive初体验
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/3647891.html
Copyright © 2011-2022 走看看