Centos 通过gitosis搭建git服务器

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

服务器:Centos

Git版本: git version 1.7.1

gitServer: Gitosis

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

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

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

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

    1
    cd gitosis
    sudo python setup.py install

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

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

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

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

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

    1
    ssh-keygen -t rsa
    # 一路回车就OK了
显示下面的信息就OK了

![](http://7xrxhd.com1.z0.glb.clouddn.com/gits01.jpg)

这时会生成 `id_rsa`和`id_rsa.pub` 两个文件,我们需要把 `id_rsa.pub`上传到`git`服务器上面

1
#通过scp上传
scp id_rsa.pub git@192.168.199.132:/home/git

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

  • 配置git服务器gitosis

    切换`git`用户,通过管理者主机的公钥初始化`gitosis`, 设置权限
    
    
    1
    [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

    1
    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`文件

1
   [gitosis]

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

[group git-test]
members = songlijun@songlijundeMBP.lan
writable = git-test
这里添加了`git-test`项目组,上传到个git服务器
1
   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仓库

    1
       [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项目

    1
        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江湖!