目前我们用的版本管理服务大多数从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 -ygit服务器gitosissudo yum install git-core -y cd /tmp git clone https://github.com/res0nat0r/gitosis.git安装
gitosis需要python的python-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了  这时会生成 `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 keydirgitosis.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 pushgit服务器创建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服务器有点麻烦但是学习啊。相信自己。🍻