目前我们用的版本管理服务大多数从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
需要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了 ![](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服务器有点麻烦但是学习啊。相信自己。🍻