Centos 通过gitosis搭建git服务器

目前我们用的版本管理服务大多数从svn 转移到了git。说到git程序猿就不得不提github了(不知道自行Google)。今天我们就搭建一个和github一样的git服务器。

服务器:Centos

Git版本: git version 1.7.1

gitServer: Gitosis

在安装git 服务器之前安装一些必要的服务
  • openssh服务器

    sudo yum install openssh-server openssh-client -y
  • git服务器gitosis

    sudo yum install git-core -y
    cd /tmp
    git clone https://github.com/res0nat0r/gitosis.git
  • 安装gitosis需要pythonpython-setuptools工具

    sudo yum install python-setuptools -y
  • 🍺OK,可以安装git服务器了

    cd gitosis
    sudo python setup.py install

    出现下面的信息表示安装成功了

    Using /usr/lib/python2.6/site-packages
    Finished processing dependencies for gitosis==0.2

    🍻所有的服务都安装好了,我们接下来就开始配置git服务器了

通过gitosis 配置git服务器
  • 创建git用户,设置密码,切换到git用户

      sudo useradd -m -s /bin/bash -d /home/git git
      sudo passwd git
      su - git
  • 上传管理git者的主机公钥用于建立连接git服务器 [非服务器主机操作]

    ```shell
    ssh-keygen -t rsa
    # 一路回车就OK了
    ```
    
    显示下面的信息就OK了
    
    ![](http://7xrxhd.com1.z0.glb.clouddn.com/gits01.jpg)
    
    这时会生成 `id_rsa`和`id_rsa.pub` 两个文件,我们需要把 `id_rsa.pub`上传到`git`服务器上面
    
    ```shell
    #通过scp上传
    scp id_rsa.pub git@192.168.199.132:/home/git
    ```

    🍺这样管理git者这边暂且OK了。

    • 配置git服务器gitosis

      切换git用户,通过管理者主机的公钥初始化gitosis, 设置权限

       [git@localhost ~]$ gitosis-init < /home/git/id_rsa.pub 
       Initialized empty Git repository in /home/git/repositories/gitosis-    admin.git/
       Reinitialized existing Git repository in /home/git/repositories/gitosis-    admin.git/
       [git@localhost ~]$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/    hooks/post-update
      

      🍺初始化好了gitosis

    • 管理者主机clone gitosis-admin

       git clone ssh://git@192.168.199.132:22/gitosis-admin.git
       cd gitosis-admin
       ls
       gitosis.conf    keydir

      gitosis.conf: git服务器配置文件
      keydir: 存放客户端公钥

      配置gitosis.conf文件

       [gitosis]
      
       [group gitosis-admin] #组名称
       members = songlijun@songlijundeMBP.lan #组成员
       writable = gitosis-admin #项目名称
      
       [group git-test]
       members = songlijun@songlijundeMBP.lan
       writable = git-test

      这里添加了git-test项目组,上传到个git服务器

       songlijundeMBP:gitosis-admin songlijun$ git add .
       songlijundeMBP:gitosis-admin songlijun$ git commit -m 'update gitosis.conf'
       [master 9967e3e] update gitosis.conf
        1 file changed, 4 insertions(+)
       songlijundeMBP:gitosis-admin songlijun$ git push
      
    • git服务器创建git-test.git仓库

       [root@localhost repositories]# su git
       [git@localhost repositories]$ git init git-test.git --bare
       Initialized empty Git repository in /home/git/repositories/git-test.git/
       [git@localhost repositories]$ ls
       gitosis-admin.git  git-test.git
      

      🍻在git服务器创建好了git-test的仓库,这样客户端即可以clone了,进行管理了。

    • 客户端clone git-test项目

      songlijundeMBP:gitTest songlijun$ git clone ssh://git@192.168.199.132:22/        git-test.git
       Cloning into 'git-test'...
       warning: You appear to have cloned an empty repository.
       Checking connectivity... done.
       songlijundeMBP:gitTest songlijun$ ls
       git-test    gitosis-admin

      🍺接下来就可以进行代码管理了。

总结

在Linux搭建git服务器有点麻烦但是学习啊。相信自己。🍻

LijunSong wechat
欢迎您扫一扫上面的微信公众号,订阅IT江湖!