Git+Gitosis+Gitweb组建多用户版本管理

二级域名配置

git.dbpoo.com 指向git repositories这个目录 /mnt/git/repositories
gitweb.dbpoo.com 指向 gitweb的目录 /usr/share/gitweb
可以通过apache VirtualHost进行配置

安装Git

centos6.5自带git1.7.1,通过下边的方法可以升级到1.7.12

查看服务器版本(服务器)

cat /etc/redhat-release

安装RPMForge源并更新git版本(服务器)

根据版本找到你要升级的rmp版本,http://pkgs.repoforge.org/rpmforge-release/
我的CentOS是CentOS-6.5 64位找到最新的版本是http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
通过命令yum –enablerepo=rpmforge-extras provides git找到RPMForge上git最新的源 git-1.7.12.4-1.el6.rfx.x86_64,接下来install即可。

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum --enablerepo=rpmforge-extras provides git
yum --enablerepo=rpmforge-extras install git-1.7.12.4-1.el6.rfx.x86_64

通过命令git –version查看到git当前版本号

安装gitosis

安装gitosis(服务器)

yum install python python-setuptools
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install

生成密钥并上传服务器(管理员机器)

ssh-keygen -t rsa #不需要密码,一路回车就行(在本地操作)
scp ~/.ssh/id_rsa.pub root@xxx:/tmp/

初始化gitosis(服务器)

adduser git # 新增一个git用户(先添加用户组 groupadd git)
su git # 切换倒git用户下
gitosis-init < /tmp/id_rsa.pub # id_rsa.pub是刚刚传过来的,注意放在/tmp目录主要是因为此目录权限所有人都有定权限的
rm /tmp/id_rsa.pub # id_rsa.pub已经无用,可删除.

获取并配置gitosis-admin(管理员机器)

git clone git@xxx:gitosis-admin.git  # 切换到root用户并在本地执行,获取gitosis管理项目,将会产生一个gitosis-admin的目录,里面有配置文件gitosis.conf和一个 keydir 的目录,keydir目录主要存放git用户名
vim gitosis-admin/gitosis.conf # 编辑gitosis-admin配置文件

配置说明

在gitosis.conf底部增加
[group 组名]
writable = 项目名

members = 用户 # 这里的用户名字 要和 keydir下的文件名字相一致

新增配置后提交git


git add .
git commit -a -m ‘add user’
git push origin master

安装gitweb

yum install gitweb

默认安装在/var/www/git,如果通过第一步骤升级了git,会连带升级gitweb,安装目录会改变成/usr/share/gitweb
这块主要影响就是VirtualHost中路径,配置对了网站也就显示出来了。

补充:常用路径

cd .ssh
cd /etc/httpd/conf/
cd /etc/httpd/conf.d/
vim /etc/gitweb.conf