群晖多人协作开发
时间:2022-07-25
本文章向大家介绍群晖多人协作开发,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
群晖多人协作开发
1.导语
最近回到学校,需要把群晖的git server整一下,顺便自己记录一下。具体如下:
使用群晖NAS搭建一个git server,其实搭建git server还是贼简单,那在加个内网的gitlab,其实就可以做到github或者gitlab的功能,大家可以进行协作开发。无奈,内存只有2g,装gitlab也装不起。老板说只能让我们使用git server,顺便给低年级的分享一下。于是有了这一篇文章。
2.群晖
首先需要在群晖上用户账号:添加一个git账户(用来创建库,具体什么名字无所谓,只要有管理员权限创建库就行了)。
除此之外,还需要为师弟师妹们创建用户,例如:light, zhangsan,lisi, guangcheng等等,同时为用户开启家目录。如下图:
随后,在终端和SNMP中把启动SSH功能开启,配置22端口,这样使用管理员git账户创建git仓库,其他用户就可以进行commit、push、pull等操作了。
接着,如何让不同用户能够push、pull等操作呢,其实很简单,在套件中心的git server里面为不同用户授权即可,对应下图打勾就完事了。
最后,代码提交到哪个目录,或者说git仓库在哪个目录呢?这里我就创建个code吧。
3.实践
3.1 git管理员操作
- git管理员账户进行登录
ssh git@ip
- 进入
/volume1/code
目录
创建git裸库,注意不能创建普通库,创建普通库是不可以进行push操作的!
git@xxx:/volume1/code/tt.git$ git init --bare
Initialized empty Git repository in /volume1/code/tt.git/
- 权限
需要进入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
其他commit操作类似,例如:添加了readme。
git add readme
git commit -m "update"
git push
- Github 项目推荐 | 用于 C/C++、Java、Matlab/Octave 的特征选择工具箱
- Mercari Price 比赛分享 —— 语言不仅是算法和公式而已
- Github 项目推荐 | GAN 的 Keras 实现案例集合 —— Keras-GAN
- Github 项目推荐 | 微软开源 MMdnn,模型可在多框架间转换
- 半自动化运维之动态添加数据文件(一) (r5笔记第55天)
- 半自动化运维之动态添加数据文件(二) (r5笔记第56天)
- 11g Active DataGuard初探(r5笔记第54天)
- Github 项目推荐 | 用于构建端对端对话系统和训练聊天机器人的开源库 —— DeepPavlov
- 我身边的一些数据库事故 (r5笔记第52天)
- 一个清理脚本的改进思路(r5笔记第51天)
- 【专业技术】Python爬虫:抓取手机APP的传输数据
- 海量数据迁移之传输表空间(一) (r5笔记第71天)
- 一条sql语句的改进探索(r5笔记第70天)
- 【专业技术】Node.js 究竟是什么?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 2.进程控制
- 2-1.死锁-经典同步问题
- 2-2.进程通信-多线程
- 微服务[学成在线] day17:基于Zuul网关实现路由转发、过滤器
- Delta Lake 学习笔记(一)
- Delta Lake 学习笔记(二)
- Delta Lake 学习笔记(三)
- 4.IP地址与子网划分
- 08-软考的法律条文
- Intellij IDEA必备插件,提高效率的“七种武器”!
- Mongodb分页查询优化下
- MySQL 案例:大表改列的新技巧(Generated Column)
- Spark 2.2 on K8S Dynamic Resource Allocation
- Java中异常处理的9个最佳实践
- Mongodb执行计划