update team-work

This commit is contained in:
2021-09-12 01:03:36 +08:00
parent 7528e93358
commit f27a15ad2b
7 changed files with 368 additions and 0 deletions

View File

@@ -0,0 +1,181 @@
# Git使用规范
版本v1.0
时间2019-02-12
[TOC]
### 一、创建``Issues``
PM在gitlab创建Issue分配给开发人员
### 二、获取主干最新代码
开发人员领取到人物之后,每次开发新功能之前,都必须要获取主干最新代码。
```
# 获取主干最新代码
$ git checkout master
$ git pull
```
### 三、新建分支
开发人员领取到任务之后,每次开发新功能,都应该新建分支,分支命名以``feature``或``fix``开始。
```
# 新建一个开发分支myfeature
$ git checkout -b myfeature
```
**``Notes``分支命名规范**
- 功能性分支
``feature/{$username}/{$version}/{$date}/{$issue_id}_{$description}``
其中:
feature 使用单数;
变量 $username 代表开发者。username 统一使用姓名首字母小写,比如 oyboyhk
变量 $version 代表里程碑版本号,格式为 releasex.x.xx为数字比如 release1.0.0
变量``$date``代表分支创建日期,格式为``yyyyMMdd``,比如``20190213``
变量 $issue_id 代表 Issue ID例如#64686
变量 $description 代表分支功能描述。应该尽量用简短的词组描述,建议使用中文,多个单词用下划线分割,比如 remove_thread。
完整的例子:
``feature/hk/release1.0.0/20190213/#64686_course_conf``
- 修复分支
``bugfix/{$username}/{$date}/{$issue_id}_{$description}``
其中:
bugfix 使用单数;
变量 $username 代表开发者。username 统一使用姓名首字母小写,比如 oyboyhk
变量``$date``代表分支创建日期,格式为``yyyyMMdd``,比如``20190213``
变量 $issue_id 代表缺陷ID或者 #64686
变量 $description 代表分支功能描述。应该尽量用简短的词组描述,建议不要使用中文,多个单词用下划线分割,比如 remove_thread。
完整的例子:
````bugfix/hk/20190213/#64686_login````
### 四、与主干分支同步
在开发过程当中,要经常与主干分支保持同步,在提交``feature``代码之前,也需要先同步主干分支代码。
```
$git pull origin master
```
### 五、提交``commit``
```
git add -a
git commit
```
### 六、撰写提交信息
提交``commit``时,需要撰写完整的提交信息
安装工具: Commit-Message-Create
```
feat新功能feature
fix修补bug
docs文档documentation
style 格式(不影响代码运行的变动)
refactor重构即不是新增功能也不是修改bug的代码变动
test增加测试
chore构建过程或辅助工具的变动
(详见《开发工具和插件使用指南》``Git``插件部分)
```
### 七、推送到远程仓库
```
$ git push origin myfeature
```
### 八、发出``Merge Request``
将代码推送到远程仓库后,就可以发出``Merge Request``到``master``分支请求别人进行代码review,将代码合并进``master``分支了,可在这一步选择接受之后是否删除原分支。
### 九、合并到主分支
PM在gitlab上查看提交和代码修改情况确认无误后确认将开发人员的分支合并到主分支master接受的时候可以选择是否删除原开发分支。
### 十、关闭``Issue``
开发人员在gitlab上添加评论并确认开发完成并关闭issue。
**Notes**
关闭Issue两种方式
- 直接关闭
- 通过``Merge Request``关闭
通过在``Merge Request``中(title或描述信息中)添加关键字+Issue编号可以直接在``MR``被接受之后自动关闭,例如
```
Closes #333, #444, #555 and #666
Closes #333, #444, and https://gitlab.com/<username>/<projectname>/issues/<xxx>
```
其他下面的关键字也可以达到相同效果:
1、Close, Closes, Closed, Closing, close, closes, closed, closing
2、Fix, Fixes, Fixed, Fixing, fix, fixes, fixed, fixing
3、Resolve, Resolves, Resolved, Resolving, resolve, resolves, resolved, resolving
-----------
### 参考资料
1、阿里Git使用规范 https://yuque.antfin-inc.com/docs/share/044ce229-b5c2-47f7-803a-544ff683cb26
2、阿里``Git commit``规范 https://yuque.antfin-inc.com/tianchiplatform/ar9o6m/ql2i4g
3、Gitlab Issue https://docs.gitlab.com/ee/user/project/issues/index.html
4、``Closing Issues`` https://docs.gitlab.com/ee/user/project/issues/closing_issues.html
5、push Git自动修复Aone中录入的缺陷 https://yuque.antfin-inc.com/aone/platform/bl0h8r
6、生成Gitlab机器人钉钉
https://www.jianshu.com/p/ad6dad6f625f
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.7M7pzQ&treeId=257&articleId=105736&docType=1#s0

View File

@@ -0,0 +1,101 @@
# gitlab初始化准备工作
版本v1.0
时间2019-01-30
[TOC]
## 创建群组
一般产品开发时创建一个产品Group再分别创建至少3个工程前端工程后端工程文档工程
可以在Group创建issue&merge模板和标签可以在子工程中继承
## 创建工程
创建项目有3种访问权限
- private 完全私有的,如果要添加用户必须手工添加 **//一般产品研发项目用这种**
- internal 内部使用这里指的是登录gitlab的用户就是登录认证通过的
- public 完全公开 随意访问 **//公司级别内部共享的框架项目用这种**
当项目为private的时候添加用户有几种角色
- Master
- Developer
- Reportor
- Guest //没有什么权限代码都看不见只能看看wiki和一些琐碎的东西
具体权限可以看这里: <http://fitnesstest.diankexuexi.com:10080/help/user/permissions>
按照权限要求,添加用户
## 创建issue&merge模板
创建步骤:
- 在根目录下创建 [.gitlab](http://fitnesstest.diankexuexi.com:10080/CT/training/tree/master/.gitlab) 目录
- 在[.gitlab](http://fitnesstest.diankexuexi.com:10080/CT/training/tree/master/.gitlab) 目录创建issue_templates目录和merge_request_templates目录
- issue_templates目录分别放入feature issue templatesbug issue templatesdocument issue templatestest issue templatesmanagement issue templates
- merge_request_templates目录分别放入feature merge request templatesbug merge request templatesproduct merge request templates
在创建Issue时根据任务类型选择不同的模板
![2](https://i.loli.net/2019/02/13/5c62ee49a6e9e.jpg)
## Issue初始化label
issue里面还有一个label需要配置从任务类型完成状态紧急程度几个维度描述对于一个issue并不是所有维度标签都是必需的**类型(必需),紧急程度(可选),完成状态(必需)**
**类型**
- feature 新功能开发任务 //#00A8DF
- bug 修复bug任务 //#FF3737
- document 文档任务 //#D1D100
- testing 测试任务 //#5CB85C
- management 管理任务 其他类型都算到这里 //#44AD8E
- MR feature 新功能分支合并 //#5843AD
- MR bug 修复bug任务 //#D10069
- MR product 文档任务 //#AD8D43
**紧急程度**
- normal 一般不紧急 可稍缓 //#00A8DF
- concerned 需要关注 尽快解决的 //#FF6D0D
- critical 非常严重 立即处理 // #FF3737
**完成状态**
- todo 准备做的 尚未开始 //#7F8C8D
- processing 正在处理 //#00A8DF
- pending 挂起 暂时挂起稍后处理 //#34495E
- acceptance 已完成 待验收 //#44AD8E
![1](https://i.loli.net/2019/02/13/5c62ee09a9b5f.jpg)
## 创建Milestones
issue里面创建Milestones将所有Issue按照Milestones进行分组管理
## 创建Product分支
默认工程创建完成就会有Master分支但是按照分支开发的原则还需要有其他分支
- master 长期分支 开发在此进行,包括持续集成
- release 分支 只保存里程碑版本 不对其进行开发操作
- feature & fixbug 短期分支 feature是新需求 开发人员根据feature issue开分支fixbug是bug 开发人员根据bug issue开分支 完成后删除
masterrelease分支必须设置分支保护禁止直接提交

View File

@@ -0,0 +1,26 @@
**Bug描述**
<!--- 描述bug产生的模块具体出现的问题 -->
**Bug界面呈现**
<!--- 可选 如果是前端发生的问题 可截图说明 -->
**Bug重现步骤**
<!--- Steps to reproduce 列出问题产生的详细步骤 以便于重现问题 或者 标明偶现 -->
**期望结果**
<!--- 描述无bug时正常的结果 可映射 测试案例文档,需求文档或设计文档 -->
**操作日志**
<!--- 可选 问题可定位 直接贴日志(内容少)无法定位或内容多 以附件方式提供 -->
------
cc/ @member (如果没有需要通知的成员 请删除此行)

View File

@@ -0,0 +1,15 @@
**文档名称**
<!--- 文档名称 -->
**文档描述**
<!--- 概要描述文档作用和内容 -->
**文档要求**
<!--- 可选 对文档编写的具体要求 -->
------
cc/ @member (如果没有需要通知的成员 请删除此行)

View File

@@ -0,0 +1,18 @@
**功能描述**
<!--- 概要描述需求 -->
**实现要求**
<!--- 可选 交互性,性能等实现要求 -->
**文档映射**
<!--- 可选 对应需求,设计文档及其章节 -->
------
cc/ @member (如果没有需要通知的成员 请删除此行)

View File

@@ -0,0 +1,12 @@
**管理事务描述**
<!--- 概要描述管理事务的具体内容 -->
**目标&要求**
<!--- 可选 对管理事务执行的目标和要求 -->
------
cc/ @member (如果没有需要通知的成员 请删除此行)

View File

@@ -0,0 +1,15 @@
**测试计划**
<!--- 描述测试范围,测试内容 -->
**测试案例**
<!--- 可选 测试案例映射关系 -->
**测试要求**
<!--- 通过测试的标准 -->
------
cc/ @member (如果没有需要通知的成员 请删除此行)