原创 lightcity 光城 2020-09-09

群晖多人协作开发

1.导语

最近回到学校,需要把群晖的git server整一下,顺便自己记录一下。具体如下:

使用群晖NAS搭建一个git server,其实搭建git server还是贼简单,那在加个内网的gitlab,其实就可以做到github或者gitlab的功能,大家可以进行协作开发。无奈,内存只有2g,装gitlab也装不起。老板说只能让我们使用git server,顺便给低年级的分享一下。于是有了这一篇文章。

2.群晖

首先需要在群晖上用户账号:添加一个git账户(用来创建库,具体什么名字无所谓,只要有管理员权限创建库就行了)。

除此之外,还需要为师弟师妹们创建用户,例如:light, zhangsan,lisi, guangcheng等等,同时为用户开启家目录。如下图:

群晖多人协作开发_c++


群晖多人协作开发_c++_02


随后,在终端和SNMP中把启动SSH功能开启,配置22端口,这样使用管理员git账户创建git仓库,其他用户就可以进行commit、push、pull等操作了。

群晖多人协作开发_c++_03

接着,如何让不同用户能够push、pull等操作呢,其实很简单,在套件中心的git server里面为不同用户授权即可,对应下图打勾就完事了。


最后,代码提交到哪个目录,或者说git仓库在哪个目录呢?这里我就创建个code吧。

群晖多人协作开发_c++_04

3.实践

3.1 git管理员操作

  1. git管理员账户进行登录
ssh git@ip
  1. 进入/volume1/code目录

创建git裸库,注意不能创建普通库,创建普通库是不可以进行push操作的!

git@xxx:/volume1/code/tt.git$ git init --bare
Initialized empty Git repository in /volume1/code/tt.git/
  1. 权限

需要进入root用户,进行权限的添加。

sudo -i
chown -R git:users /volume1/code/
chmod -R 770 /volume1/code/

3.2 普通用户操作

假设我是我们团队的开发人员之一,我如何拉到代码呢?

git clone ssh://light@ip/volume1/code/tt.git

群晖多人协作开发_c++_05

其他commit操作类似,例如:添加了readme。

git add readme
git commit -m "update"
git push