1. 时序图
sequenceDiagram master-->>master:master最新版本tag为v1.0 master->>dev: master分支Merge到dev dev->>20230220-name-feature1: 基于dev创建20230220-name-feature1分支 dev->>20230222-name-feature2: 基于dev创建20230222-name-feature2分支 20230220-name-feature1-->>20230220-name-feature1: 开发人员A开发 20230222-name-feature2-->>20230222-name-feature2: 开发人员B开发 20230220-name-feature1-->>dev: 20230220-name-feature1分支合并到dev分支 dev-->>dev: 开发人员A修复20230220-name-feature1功能bug 20230222-name-feature2-->>dev: 20230222-name-feature2分支合并到dev分支 dev-->>dev: 开发人员B修复20230222-name-feature2功能bug dev-->>dev: 该阶段所有功能开发完毕,部署内网web平台 dev-->>master: 测试完毕后,dev分支合并到master master-->>master: 打tag v1.1,部署外网web平台 master->>hotfix: 基于master分支v1.1创建hotfix分支 hotfix-->>hotfix: 完成bug修复 hotfix-->>dev: hotfix分支合并到dev dev-->>dev: 重新部署内网web平台 hotfix-->>master: hotfix分支合并到master master-->>master: 打tag v1.1.1,重新部署外网web平台
|
时序图 |
---|
 |
2. 分支结构
分支 | 说明 | 举例 |
---|
master | 代码的主分支,存放稳定代码的保护分支,不允许开发人员随意合并,用于发布外网web平台,通过tag区分版本 | |
dev | 日常开发分支,达到稳定状态可以用于发布内网web平台,测试后可以被合并入master分支 | |
20230203-name-feature | 新功能分支,分支名形式为日期+开发人员姓名拼音+功能简单英文描述 | 20230203-zouxiongbin-QRcode |
hotfix | bug修复分支 | |
3. 开发流程
- 管理员基于master稳定分支先打tag ,如v1.0
- 管理员从master分支合并到dev分支
- 开发人员A基于dev分支创建20230220-name-feature1分支
- 开发人员B基于dev分支创建20230222-name-feature2分支
- 20230220-name-feature1分支开发完毕,开发人员A自测
- 本地自测完毕后,开发人员A将20230220-name-feature1分支合并到dev分支
- 20230222-name-feature2分支开发完毕,开发人员B自测
- 本地自测完毕后,开发人员B将20230222-name-feature2分支合并到dev分支
- 管理员按计划使用dev代码部署内网web平台,开始系统测试
- 全部测试完成后,管理员将dev分支代码合并到master分支,master分支打tag,如v1.1,部署外网web平台
- 如果出现紧急bug,管理员从master新建一个hotfix分支,开发人员修补的代码需要提到该分支
- 测试通过后,管理员将hotfix分支合并到master分支和dev分支,master分支打tag,如v1.1.1,重新部署内网web平台和外网web平台
4. 提交信息规范建议
代码需要提交到对应分支,提交前请先执行git pull origin dev
git commit -m "[type]:message"
type类别说明:
feat:添加新功能
fix:修复bug
perf:优化相关,比如提升性能、体验
docs:文档
style:格式,不影响代码运行的变动
test:增加测试用例
chore:构建过程或辅助工具的变动
revert:回滚到上一个版本
merge:代码合并
message必须描述清楚主要变更内容,也可直接使用tapd任务单链接,如:git commit -m “[feat]:【【后台】1.4-后台封榜、后台解封】https://www.tapd.cn/30292197/prong/stories/view/1130292197001114925”
5. Git常用指令
# 在当前目录新建一个git代码库 git init # 下载一个项目和它的整个代码历史 git clone [url] # 显示当前git配置 git config --list # 设置提交代码时的用户名字 git config user.name "[name]" # 设置提交代码时的用户名字 git config user.email "[email address]" # 查看所有本地和远程分支 git branch -a # 新建一个分支,与指定的远程分支建立追踪关系 git branch --track [branch] [remote-branch] # 新建一个分支,并切换到该分支 git checkout -b [branch] # 拉取远程dev分支最新代码 git pull origin dev # 将代码提交到远程branch分支 git push origin [branch] # 删除远程分支 git push origin --delete [branch-name] # 将所有未提交的修改保存到堆栈中 git stash save "desc" # 查看堆栈中保存的所有stash git stash list # 应用堆栈中指定stash内容到当前目录 git stash apply stash@{xx} # 查看堆栈中最新保存的stash和当前目录的差异 git stash show stash@{xx} -p
|