使用gitolite3搭建简易git server

生成key

1
2
3
4
pi@raspberrypi /data % tree ssh 
ssh
├── mingilin
└── mingilin.pub

这个具体问百度吧

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
sudo apt-get install gitolite3
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会安装下列额外的软件包:
libcommon-sense-perl libjson-perl libjson-xs-perl
建议安装的软件包:
git-daemon-sysvinit gitweb
下列【新】软件包将被安装:
gitolite3 libcommon-sense-perl libjson-perl libjson-xs-perl
升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 100 个软件包未被升级。
需要下载 0 B/336 kB 的软件包。
解压缩后会消耗掉 1,040 kB 的额外空间。
您希望继续执行吗?[Y/n]y
正在预设定软件包 ...
Selecting previously unselected package libjson-perl.
(正在读取数据库 ... 系统当前共安装有 85705 个文件和目录。)
正在解压缩 libjson-perl (从 .../libjson-perl_2.53-1_all.deb) ...
Selecting previously unselected package gitolite3.
正在解压缩 gitolite3 (从 .../gitolite3_3.6.4-1~bpo70+1_all.deb) ...
Selecting previously unselected package libcommon-sense-perl.
正在解压缩 libcommon-sense-perl (从 .../libcommon-sense-perl_3.6-1_all.deb) ...
Selecting previously unselected package libjson-xs-perl.
正在解压缩 libjson-xs-perl (从 .../libjson-xs-perl_2.320-1_armhf.deb) ...
正在处理用于 man-db 的触发器...
正在设置 libjson-perl (2.53-1) ...
正在设置 gitolite3 (3.6.4-1~bpo70+1) ...
初始化空的 Git 版本库于 /var/lib/gitolite3/repositories/gitolite-admin.git/
初始化空的 Git 版本库于 /var/lib/gitolite3/repositories/testing.git/
WARNING: /var/lib/gitolite3/.ssh missing; creating a new one
(this is normal on a brand new install)
WARNING: /var/lib/gitolite3/.ssh/authorized_keys missing; creating a new one
(this is normal on a brand new install)
正在设置 libcommon-sense-perl (3.6-1) ...
正在设置 libjson-xs-perl (2.320-1) ...

在安装过程中提示输入公钥(.pub), 将公钥的绝对路径输入
然后等待安装完成
在安装过程中有提示

1
2
初始化空的 Git 版本库于 /var/lib/gitolite3/repositories/gitolite-admin.git/
初始化空的 Git 版本库于 /var/lib/gitolite3/repositories/testing.git/

查看权限

1
2
pi@raspberrypi ~ % ll /var/lib|grep gitolite3
drwxr-xr-x 5 gitolite3 gitolite3 4.0K 5月 11 09:56 gitolite3

说明user是gitolite3

CLONE

1
2
3
4
5
6
7
8
cp /data/ssh/mingilin ~/.ssh/id_rsa && chmod 400 ~/.ssh/id_rsa
## GITHOST为服务器IP
## 需要打开git端口9418
git clone gitolite3@GITHOST:gitolite-admin.git
## 方法2
## SSHHost为SSH IP
## SSHPort为SSH端口
## git clone ssh://gitolite3@SSHHost:SSHPort/gitolite-admin.git

权限设置请参考http://www.server-world.info/en/note?os=CentOS_6&p=gitolite&f=4

修改用户名

如果觉得gitolite3@xxxx比较别扭的话,使用sudo usermod -l git gitolite3更改用户名

然后就可以使用git clone ssh://git@SSHHost:SSHPort/xxx.git

参考文档

  1. http://www.server-world.info/en/note?os=CentOS_6&p=gitolite
  2. http://www.uml.org.cn/pzgl/201404092.asp