转载

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
  • :beer:OK,可以安装 git 服务器了

    cd gitosis sudo python setup.py install

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

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

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

通过 gitosis 配置 git 服务器

  • 创建 git 用户,设置密码,切换到 git 用户

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

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

:beer:这样管理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
:beer:初始化好了`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
:beers:在`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
:beer:接下来就可以进行代码管理了。 
原文  http://itjhdev.github.io/2016/03/23/centosinstallgitserver/
正文到此结束
Loading...