From f27a15ad2b9db055d08ce6178227f6ed3be4ad3f Mon Sep 17 00:00:00 2001 From: fengzhao-pve Date: Sun, 12 Sep 2021 01:03:36 +0800 Subject: [PATCH] update team-work --- git规范/Git操作指南.md | 181 ++++++++++++++++++ .../gitlab项目初始化准备工作.md | 101 ++++++++++ git规范/issue模板/bug_issue_templates.md | 26 +++ git规范/issue模板/document_issue_templates.md | 15 ++ git规范/issue模板/feature_issue_templates.md | 18 ++ .../issue模板/management_issue_templates.md | 12 ++ git规范/issue模板/test_issue_templates.md | 15 ++ 7 files changed, 368 insertions(+) create mode 100644 git规范/Git操作指南.md create mode 100644 git规范/gitlab项目初始化准备工作/gitlab项目初始化准备工作.md create mode 100644 git规范/issue模板/bug_issue_templates.md create mode 100644 git规范/issue模板/document_issue_templates.md create mode 100644 git规范/issue模板/feature_issue_templates.md create mode 100644 git规范/issue模板/management_issue_templates.md create mode 100644 git规范/issue模板/test_issue_templates.md diff --git a/git规范/Git操作指南.md b/git规范/Git操作指南.md new file mode 100644 index 0000000..69e6a7f --- /dev/null +++ b/git规范/Git操作指南.md @@ -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 统一使用姓名首字母小写,比如 oyboy,hk; + + 变量 $version 代表里程碑版本号,格式为 releasex.x.x(x为数字),比如 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 统一使用姓名首字母小写,比如 oyboy,hk; + + 变量``$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///issues/ + ``` + + 其他下面的关键字也可以达到相同效果: + + 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 + diff --git a/git规范/gitlab项目初始化准备工作/gitlab项目初始化准备工作.md b/git规范/gitlab项目初始化准备工作/gitlab项目初始化准备工作.md new file mode 100644 index 0000000..b78a888 --- /dev/null +++ b/git规范/gitlab项目初始化准备工作/gitlab项目初始化准备工作.md @@ -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和一些琐碎的东西 + +具体权限可以看这里: + +按照权限要求,添加用户 + +## 创建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 templates,bug issue templates,document issue templates,test issue templates,management issue templates +- merge_request_templates目录分别放入:feature merge request templates,bug merge request templates,product 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开分支 完成后删除 + +master,release分支必须设置分支保护,禁止直接提交 + +​ \ No newline at end of file diff --git a/git规范/issue模板/bug_issue_templates.md b/git规范/issue模板/bug_issue_templates.md new file mode 100644 index 0000000..bc41cde --- /dev/null +++ b/git规范/issue模板/bug_issue_templates.md @@ -0,0 +1,26 @@ +**Bug描述** + + + +**Bug界面呈现** + + + +**Bug重现步骤** + + + +**期望结果** + + + +**操作日志** + + + + + +------ + +cc/ @member (如果没有需要通知的成员 请删除此行) + diff --git a/git规范/issue模板/document_issue_templates.md b/git规范/issue模板/document_issue_templates.md new file mode 100644 index 0000000..e3e6899 --- /dev/null +++ b/git规范/issue模板/document_issue_templates.md @@ -0,0 +1,15 @@ +**文档名称** + + + +**文档描述** + + + +**文档要求** + + + +------ + +cc/ @member (如果没有需要通知的成员 请删除此行) diff --git a/git规范/issue模板/feature_issue_templates.md b/git规范/issue模板/feature_issue_templates.md new file mode 100644 index 0000000..a687f0d --- /dev/null +++ b/git规范/issue模板/feature_issue_templates.md @@ -0,0 +1,18 @@ +**功能描述** + + + +**实现要求** + + + +**文档映射** + + + + + +------ + +cc/ @member (如果没有需要通知的成员 请删除此行) + diff --git a/git规范/issue模板/management_issue_templates.md b/git规范/issue模板/management_issue_templates.md new file mode 100644 index 0000000..80cf30e --- /dev/null +++ b/git规范/issue模板/management_issue_templates.md @@ -0,0 +1,12 @@ +**管理事务描述** + + + +**目标&要求** + + + +------ + +cc/ @member (如果没有需要通知的成员 请删除此行) + diff --git a/git规范/issue模板/test_issue_templates.md b/git规范/issue模板/test_issue_templates.md new file mode 100644 index 0000000..394b79f --- /dev/null +++ b/git规范/issue模板/test_issue_templates.md @@ -0,0 +1,15 @@ +**测试计划** + + + +**测试案例** + + + +**测试要求** + + + +------ + +cc/ @member (如果没有需要通知的成员 请删除此行)