Git Flow
文章目录
英语名词
| 英语 | 解释 | 例子 |
|---|---|---|
| panacea | 万能药 | |
| every once in a while | 每隔一段时间 | |
| branch off … from … | vt. 分支,分叉 | |
| off 副词 |
branch model 分支模型
适用性
- 软件需要支持多个版本
- 软件需要版本化
对于 CD(continous delivery) 软件
- 推荐 Github Flow
各个版本的个人理解
主要分支
- Master
- Develop
features 分支
- 比 develop 更多 commit
- 有多个
master 分支
- 功能完整的分支
- bug 基本都修复的分支
- 完成了的 realse 分支版本
release 分支
- 创建和完善 release 分支的线路
feature
- 只有一个版本起始阶段继承进来了 features
- 后续没有新 feature
- 只有修复 bugs
可以有多个
- ? 是不是每个 release 专门设计一个分支
禁止行为
- 不允许在 release 分支添加大的新功能(large new features)
创建
必须要在所有的相关 features 分支被合并到 develop 后
- 这些 features 分支是下个版本需要的
哪些下下个版本需要的 features
- 不需要被合并到 develop
hotfixes 分支
- 用于严重 bug 的修复
完成后
- 被合并到 develop 和 master 分支
- 可以有多个
来源
- 继承自 master 分支
VS. releases 分支
最终都要合并的 master
用于发布
- hotfixes 是小版本
- releases 是大版本
- 都要合并到 develop
来源不同
- hotfixes 继承 master
- releases 继承 develop
作用
- 可以与 develop 分支并行向前
- 不耽误 develop 的开发
名称
hotfix-1.2.1
- 这里 "..1" 代表修复 bug 的版本
develop 分支
存放新开发,且通过测试的代码
- 但是,还没有达到下一个发布窗口
别名
- integration branch
- 所有分支的干线和中枢
基本不在 develop 分支上 直接修改代码
- 合并 hotfixes 分支(上个版本的 server bugs)
合适的时刻合并 features(完成了的), 开始开发下个版本
- 合并 releases 分支上修复的 bugs
被继承
被 features 分支继承
- 用于开发新功能
在合并 features 分支后,被 releases 分支继承
- 用于制作新的 release 版本
注意
继承创建分支后
- 不会再被合并到之前分出去的分支上了
只会在相关分支–完成设定目标后,再合并回来
如:
- feature 分支,要做新功能完成
- release 分支,bug 修复,可以发布之后
生命期
长久
- master
- develop
暂时 a limited life time
- features
- releases
- hotfixes
这些分支都是为了完成某个任务
- 最终都是要被删除的
命名传统
master
- 不变
develop
- 不变
release
- release-*
- release-1.2
hotfix
- hotfix-*
eg:
- hotfix-1.2.1
feature
- 除掉上述名称以外都可以
与 issue 相关
- feature@<issue id>
使用关键字
- feature-<keyword>
标签
0.x
- 这里 .x 只用于大型 bug (severe bugs) 修复
x.0
- 这里 x. 用于添加 features
分支管理命令
release 分支
1 2 3 4 5 6 7 8 9 10 11 12# * 创建 $ git checkout develop Switched to branch 'develop' # * 合并 $ git merge --no-ff release-1.2 Merge made by recursive. (Summary of changes) # * 删除无用分支 $ git branch -d release-1.2 Deleted branch release-1.2 (was ff452fe).注意
合并
需要使用 –no-ff 选项
- 这样能保存 release 分支 曾经存在的痕迹
log message
- 不用手动记录 合并分支的信息
git 会自动生成合并的信息
1 2 3 4 5 6 7 8,* 0dadd90 (HEAD -> develop) Merge branch 'feature-similar-formula' into develop |\ | * 650a436 Delete some old codes and Add comments for flaskserver_aiohttp.py | * a404257 add time for logging and replace old codes with argparse module. | * 6d5e295 AreaSplit codes for similar formula ,* | 8a3bfa5 (master) change in databases |/ ,* 60e7fb1 Reconstructed the tpp module to a package.- 如上所示,在合并的 commit 上有 说明被合并的分支
commit 提交 log 规范
文章作者
上次更新 2023-02-10 (97c415e)