CentOS 6.2/6.3安装配置Git及Gitosis

04.03.2013 by jiezhou - 0 Comment, Posted in linux

1、安装git

因为centos源中已经包含git,而且是较新版本,所有可以直接以下命令安装:

yum install git

2、安装gitosis

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

3、客户端配置

在客户端生成密钥(windows请先安装msysGit,然后在git bash里执行)

ssh-keygen -t rsa

通过scp或者ftp上传密钥到服务端/tmp目录

scp ~/.ssh/id_rsa.pub USER@YOUR_SERVER:/tmp

这一步操作主要是用来创建git管理员的

4、服务端配置(gitosis)

#创建用户
groupadd git
useradd -g git -d /data/git git
chown -R git:git /data/git
#配置仓库
su git
gitosis-init < /tmp/id_rsa.pub

4、管理git(gitosis)

gitosis-admin本身就是一个git库,所以管理起来非常方便。在客户端检出gitosis-admin,就可以进行管理

git clone git@YOUR_SERVER:gitosis-admin.git
cd gitosis-admin

你将看到 gitosis.conf 文件和 keydir目录,前者用来配置git服务器项目,后者用来保存客户端的公钥。
我们可以在本地修改配置更改权限,然后push到服务端后,服务器端就立刻生效。
打开gitosis.conf文件,你将看到:

[group gitosis-admin]
writable = gitosis-admin
members = admin@win

这个是管理组的权限,members中的用户名就是刚才上传的公钥里面的用户名。
在这个文件后面加入:

[group myteam]
members = admin@win kevin@mac
writable = myproject

这里你定义了一个叫myteam的组,授予admin@win及kevin@mac这两个用户写myproject这个repo的权限
然后将kevin@mac的公钥(如第3步一样生成一个密钥)更名为kevin@mac.pub放到keydir目录下,就可以让kevin@mac读写myproject了

git commit -a -m "Allow admin,kevin write access to myprojecy"
git push

上面的操作就更新了服务端的权限。
下面就开始创建myprojecy的repo

mkdir myproject
cd myproject
# 初始化git
git init
# 创建一个Readme文件
touch README  
# 添加到索引
git add .
# 提交至仓库
git commit -m "initial myproject"
# 配置远程参数,将远程地址保存并命名为origin,并设置
git remote add origin git@YOUR_SERVER:myproject.git
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
# 将代码推送给远程
git push origin master

至此,配置完成,kevin@mac就可以通过以下命令获取代码了:

git clone git@YOUR_SERVER:myprojecy.git