0%

几种常用git server

记录下自己用过的几种git server:GITEA,gitolite3,Gidder/Gitrepo

GITEA

现在正在用,简单方便,基本的功能都有了

1
2
3
4
5
6
7
8
9
10
11
## install docker
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl enable docker
systemctl start docker

## gitea
docker pull gitea/gitea:latest
mkdir -p /data/gitea
docker run -d --name=gitea -p 2222:22 -p 3000:3000 -v /data/gitea:/data gitea/gitea:latest
docker update --restart=always gitea
1
2
3
4
5
6
7
8
9
10
## nginx config
cat > /etc/nginx/conf.d/001_${DOMAIN}.conf << "EOF"
server {
server_name {DOMAIN};
listen 80;

location / {
proxy_pass http://127.0.0.1:3000/;
}
}

gitolite3

准备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

基于linux ssh

安装

1
yum install -g git

创建repo

1
2
mkdir -p /repos
git init --bare /repos/test.git

连接

1
2
3
4
5
cd ~/.ssh
touch config && chmod 600 config
echo "HostkeyAlgorithms +ssh-dss" >> config
git clone ssh://username@ip:port/repos/test.git test
## git clone ssh://kingwen0302@192.168.1.100:22/repos/test.git test

Gidder/Gitrepo

Google Play已经找不到这两个软件了
个人只备份了一个Gitrepo

设置

Users

setup -> users -> add new user

Repositories

setup -> repositories -> add repository -> add permission

Client

增加ssh-dss支持

1
2
3
cd ~/.ssh
touch config && chmod 600 config
echo "HostkeyAlgorithms +ssh-dss" >> config
1
git clone ssh://username@ip:port/reponame.git

gitlab

VPS太垃圾,不敢用

参考文档

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