Ubuntu 配置git服务器 gitosis

一.安装git版本控制核心软件

1
sudo apt-get install git-core

二.安装openssh-server和openssh-client

1
sudo apt-get install openssh-server openssh-client

三.安装python

1
sudo apt-get install python-setuptools

四.初始化设置git用户信息

1
2
git config --global user.name "zxcv740"
git config --global user.email "zxcv740@qq.com"

五.设置完成后,下载gitosis

1
git clone https://github.com/res0nat0r/gitosis.git

六.完成后开始安装

1
2
cd gitosis/
sudo python setup.py install

七.创建一个git账户作为git服务器管理员,可以管理其他用户

1
2
3
sudo useradd -m git
sudo passwd git
// 设置git用户密码

八.在/home目录下创建一个项目仓库储存点,并且设置权限,这里git有所有权限,其他账户

1
2
3
mkdir /home/gitrepository
chown git:git /home/gitrepository/
chmod 700 /home/gitrepository/

九.设置链接映射

1
sudo ln -s /home/gitrepository /home/git/repositories

十.在我的服务器生产ssh公钥

1
2
3
4
ssh-keygen -t rsa
//直接回车不输出密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

十一.生成好的id_rsa.pub对gitosis进行初始化

1
2
// 如果你要在其他机器,比如你现在用的电脑来管理,用现在电脑的pub
sudo -H -u git gitosis-init < /root/.ssh/id_rsa.pub

十二.这里说明一下,gitosis是通过gitosis-admin.git仓库来管理一些配置文件的,用户权限等等

1
2
// 别人也能够clone gitosis-admin.git
chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update

十三.测试在服务器创建项目仓库

1
2
3
4
5
6
7
8
9
10
11
// 切换到git用户
su git
// 进入仓库储存目录
cd /home/gitrepository/
// 创建仓库项目文件
mkdir mytest.git
cd mytest/
// 初始化
git init --bare
// 退出git用户
exit

十四.配置项目以及用户等等信息,重点
1.如果你是git管理员,先git clone 一下gitosis-admin.git 这个git,配置keydir与配置文件gitosis.conf
2.例如:新加入一个团队用户candy, 在他的机器通过第四步骤与第十步骤生产id_rsa.pub并且改名为candy.pub,然后发给git管理员
3.管理员把candy.pub放入keydir文件夹,配置gitosis.conf添加如下

1
2
3
[group developers] // 开发组
writable = mytest // 开发者项目
members = candy // 人员具有读写权限,多人以空格分开