在自己的云主机上搭了个git服务器,方便平时写代码,这里记录下步骤,方便以后自己查看,推荐直接看参考原文:Centos 6.4搭建git服务器(完全参考此文)。
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y
git --version #看是否安装过git
yum install git #没有则安装
权限管理工具gitosis的安装,需要用到python-setuptools
yum install python python-setuptools
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis/
python setup.py install
可以通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者。
ssh-keygen -t rsa #一路回车,不需要设置密码
scp ~/.ssh/id_rsa.pub username@ip:~
服务器上生成git用户,使用git用户并初始化gitosis
创建git版本管理用户 git
useradd -c "git version manager" -m -d /home/git -s /bin/bash git
passed git
初始化mitosis
mv id_rsa.pub /home/git/
su git
cd
gitosis-init < ./id_rsa.pub
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update #添加权限
服务器端配置就ok了,下一步在开发者机器上配置
mkdir ~/gitrepo
cd gitrepo
git clone git@ip:gitosis-admin.git #克隆项目管理仓库
创建一个新项目要在gitosis-admin.git的配置文件中添加项目,并提交到git服务器告诉服务器我有个新项目。
$cd ~/gitrepo/gitosis-admin
$vim gitosis.conf
[group test] # 具有写权限的组名称
writable = test # 该组可写的项目名称
members = XXX #有写权限的组成员
提交到服务器
$git add .
$git commit -a -m "add test repo"
$git push
本地创建新项目test提交到远程仓库
$cd ~/repo
$mkdir test
$cd test #对于新的项目,需要先在本地初始化为 Git 项目,添加要管理的文件并作首次提交
$git init
$touch ready
提交到远程服务器
$git add .
$git commit -a -m "init test"
$git remote add origin git@192.168.186.129:test.git
$git push origin master
服务端/home/git/repositories
下就会产生test.git项目
项目的开发人员一般不止一个,就要添加项目协同开发者。这里需要协同开发者的公钥,上传至git服务器。
$cd ~/gitrepo/gitosis-admin/keydir
$ mv ~/id_rsa.pub liu@xx.pub #修改公钥为`主机名.pub`
$vim gitosis.conf #添加成员
[group test]
writable = test
members = xxx@xxx-pc liu@xx
然后将添加数据后的目录更新到git服务器
$git add keydir/liu@xx.pub
$git commit -am " granted liu@xx commit rights to test "
$git push
注解:gitosis实际上是从服务器端的/home/git/repositories/gitosis-admin/.gitosis.conf
文件读取信息的,通过以上操作,会将新的权限信息写入到该文件中,如果搞错了配置,导致失去了推送权限,可以通过修改该文件来重新设定,如果你手工编辑该文件的话,它会一直保持到下次向 gitosis-admin 推送新版本的配置内容为止。
推送完成后,新加的协同开发者就可以进行项目的开发了。
完全参考这篇文章:Centos 6.4搭建git服务器