携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情 >>
GitFlow工作流
master
-
生产主分支,发布到生产环境使用这个分支,由hotfix或者release分支合并过来,不直接提交代码
-
统一在master上打正式线tag,eg:v1.0.0 / v2.0.0
develop
- 主开发分支 , 基于master分支克隆,由feature分支合并过来,一般不直接提交代码
- 通常来说版本要快于master
features
- 功能开发分支 , 基于develop分支克隆 , 主要用于新需求新功能的开发,同时存在多个
- 不断的integrate(获取其他人的最新代码) , 等待相同版本的功能都开发完毕后,统一Finish ,finish后会合并到develop, 启动release
- 分支命名eg:v1.1.0-login / v1.1.0-share
releases
- 预发布分支 , 基于feature分支合并到develop之后 , 从develop分支克隆
- 统一在releases上打测试线tag,eg:v1.1.0-alpha1 / v2.0.0-alpha1
- 测试完成后Finish releases合并到master和develop,并在master打上正式tag。
hotfixs
- 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复,完成后合并到master分支和develop分支
- finish 后合并到master和develop
smart工作区域
- Repositories:仓库,是指本地仓库的目录
- graph:图形,用于追溯代码故事
- Branches:显示的是本地库Local Branches 远程库origin和库中打过标签的tags.
- commit:选中代码提交信息
- Files:选中代码修改的文件
- change XXX:修改前后文件信息对比
Banches区域
| local branch | origin | tags | stashes | Recyclable Commits |
|---|---|---|---|---|
| 本地分支 | 远程分支 | 所有tag | 保存stash过的记录,右键点击Apply Stash -->apply,即可恢复 | 可回收的提交 |
Top区域
| pull | sync | push | stage | index editor | upstage | discard | save stash | apply stash | blame | investigate | git-flow | merge | rebase |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 拉取远程仓库到本地 | 先提交后拉取 / 先拉取后提交 | 提交本地代码到远程仓库 | 添加当前目录下的所有文件到暂存区相当于git add . | 放弃暂存区文件 | 放弃检测到本地更改的操作,还原修改暂存(Index)或HEAD状态 | 保存本地缓存 | 展示保存到本地的缓存 | 追溯一个指定文件的历史修改记录 | 工作流 | 合并分支 | 将提交从一个分支应用到另一个分支 |
准备工作
- clone仓库地址
- smartGit --> Git-Flow --> Configure --> Change Configuration --> Full & Reset to Defaults & OK --> master push & develop push
开发流程
-
完成准备工作
-
Git-flow --> strat feature --> start
-
在上一步的feature上完成所有当前版本开发工作,然后finish feature
-
更新测试线:Git-flow --> strat release --> start,所有测试的tag都在这个release上添加
- 在releases上获取最新develop的代码:release --> 切换到当前release --> 选中master --> 点击merge --> create Merge-Commit --> pull当前release
-
更新线上:在当前release上右键点击finish release并合并到develop和master上
-
在master上打正式线的tag
-
线上的小改动
- 在master上新建一个hotfixs进行修改
- 再此hotfixs上打测试线tag
- 直到可以上线后,finish hotfixs并合并到master和develop上,并在master上打正式线tag
-
新的版本
- 新开一个feature,重复开发流程
- 如果仓库内有需要同时在线上的项目则需要修改build.json
-
开发新版本时需要修改测试线版本
- 按照上述流程,正在开发的新版本在一个feature上,测试线在releases上
- 只需要新开一个feature,完成后finish feature,并在releases上merge develop上最新的代码并打测试tag
- 在新版本的feature上integrate develop上最新的代码即可
-
开发新版本时需要修改正式线版本
- 在需要修改的版本上开一个hotfixs,详见线上小改动
- 如果在新开发版本需要合并修改的代码
- feature --> 右键integrate
- release --> 切换到当前release --> 选中master --> 点击merge --> create Merge-Commit --> pull当前release