从一个前端项目实践 Git flow 的流程与参考
Git flow 出自 A successful Git branching model,这里使用了一个前端项目配合本文稿实施了 git flow 并记录流程作出示例和参考,对 hotfix 与持续部署略有提及,本意是用作公司内部的技术安利。
所用源码及文档本身见于 github jusfr/HelloGitflow
前言
Gitflow 是一种 git 分支管理工具——说是思想也不为过,它使用既定策略区分和管理开发、测试、生产环境的代码版本,对测试与持续集成友好,与敏捷、迭代的思路一致。
1 准备工作
1.1 创建空白目录
mkdir HelloGitflow
cd HelloGitflow
1.2 开始当前目录工作,示例创建和保存一个 index.html
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div></div> </body> </html>
git add index.html
git commit -m "init commit"
2 Git flow init
git flow init
这里使用了默认配置,一路 next
3 一个完整的开发周期
3.1 任务拆解,示例添加了分支 about 和 navigation
git flow feature start about
git flow feature start navigation
任务拆解相当于 story 认领,实际开发中的步骤更加繁冗。
3.2.1 about 分支创建了一个 about.html
git checkout feature/about
# more work to do
git add about.html
git commit -m "add about.html"
3.2.2 navigation 分支创建了一个 nav.html
git checkout feature/navigation
# more work to do
git add nav.html
git commit -m "add nav.html"
3.3 开始合并分支
3.3.1 合并 about
git flow feature finish about
3.3.2 合并 navigation,存在 merge 过程
git flow feature finish navigation
3.4 版本发布
3.4.1 当 feature 积累数量达到可以进行版本发布时,开始进行 release 发布
git flow release start v0.1
3.4.2 部分内容需要修改,在这里为各页面添加了 title
git add index.html about.html nav.html
git commit -m "add title for each page"
3.4.3 结束当前 release 分支
# git push
git flow release finish v0.1
4 连续的开发周期
我们开始在远程分支上工作,可以在结束分支前先将其 push 到远程分支上避免未在本地保留的情况
git remote add github https://github.com/jusfr/HelloGitflow.git
git push github --all
虽然开出来很多分支,但是可以观察到 master 和合并了两次,且分别被标记为 v0.1 和 v0.2
不考虑测试等情况,标记 v0.1 和 v0.2 的 master 版本或者 release/v0.1 和 release/v0.2 都是可以部署的版本。
5 线上的 bug 修复
现在已经在 v0.2 基础上进行 account 和 react 的分支开发,但是发现线上的 v0.2 版本需要立即修复的问题,分支状态
开启 hotfix/v0.2.1 来修复这个问题
bash git flow hotfix start v0.2.1
在 hotfix/v0.2.1 的视角来看,它是从最近的 mater 分支checkout 下来的,所以对正在进行的 account 和 react 无影响
以全局视角来看,hotfix/v0.2.1 与 account 和 react 确实没有交集
现在问题修复,合并 hotfix/v0.2.1
bash git flow hotfix finish 'v0.2.1'
当然仍然可以先 push 到远程分支,可以看到进行了若干步操作
- 合并 hotfix/v0.2.1 到 master 分支,master 分支被打上 v0.2.1 的 tag
- 合并 master 到 develop 分支。
在第2步中,如果 develop 有过变更,比如有过 feature 合并,那么可能存在冲突需要解决
在此示例中, master 分别被打上了 v0.1, v0.2, v0.2.1 标记,这对基于 master 的持续部署非常友好:可以快速在这些版本中部署与回滚,而不用关心存在多少变更与分支等等。
从一个前端项目实践 Git flow 的流程与参考相关推荐
- 如何交接(接手)一个前端项目
2018年入职某公司,接手一大哥的前端项目,几乎无任何交接文档,催也不给,无奈之下只好当面沟通交流,前后问了很多问题,导致双方又累又不开心. 后来风水轮流转,2020年的时候,他来接手我的一个前端项目 ...
- 如何将spring源码作为导入eclipse中,变成一个普通的项目(git、github)
引子: 怎么查看spring-framework的源码?是不是用压缩软件解压jar包,然后用编辑软件看?高端一点的,是在eclipse上面,按住Ctrl键跳转着看?这里我给大家介绍更加高端一点的方法. ...
- Vue 搭建一个前端项目
一.前言 之前图省事,都是在html中引入Vue.js的CDN来使用Vue开发网站项目,其实正确的做法应该是使用Vue构建一个完整的项目,进而进行前后端分离的开发. 二.让我们开始吧! 1 node环 ...
- Git Flow 工作流程
引言 编写的目的 -通过规范化的流程,使得产品.开发与测试等各个部门更高效的协同工作. -通过规范化的流程使得产品高效稳定运行. 背景 在多组员,多项目等环境进行协同工作时,如果没有统一规范.统一流程 ...
- 如何开始做一个开源项目?他的亲身经历值得参考
(点击上方公众号,可快速关注) 英文:Vincent Voyer,翻译:Linux爱好者 - nEoYe [导读]:作者 Vincent Voyer 用亲身经历鼓励大家从事开源活动:他在 Nodejs ...
- 创建一个vue-cli项目到运行的完整流程
创建一个新的vue项目进行开发的完整流程 安装vue 安装vue-cli 创建一个项目 修改babel.config.js 预处理器 安装 Sass 安装Less 安装stylus 在项目中.vue文 ...
- 【jQuery】前端项目实践案例1——使用jQuery制作Tab选项卡点击切换效果
1.实现效果: 案例描述:当用户单击不同的导航时,与其对应的内容回相应的呈现. 案例要求:使用jquery制作实现tab选项卡单击切换效果. 2.实现思路: (1)div+css布局,制作选项卡和对应 ...
- vue项目运行启动方法(从github上下载了一个前端项目进行运行)
1.从GitHub上下载完整的项目压缩包并解压到没有中文目录的路径下. 2.安装node: 官网地址 https://nodejs.org/en/ 按照 https://www.cnblogs.co ...
- 【jQuery】前端项目实践案例6——制作产品放大镜效果(仿京东淘宝图片效果)
使用jQuery制作产品放大镜效果实现效果: 使用jQuery制作产品放大镜效果实现原理: 通过设置图像的 CSS 属性( left 和 top ),来实现图像的移动. 使用jQuery制作产品放大镜 ...
最新文章
- 杨老师课堂之JavaScript定时器限时抢购秒杀商品案例
- 如何用命令隐藏文件夹
- 数据挖掘之关联分析七(非频繁模式)
- go中如何使用easyjson_两分钟让你明白Go中如何继承
- oracle数据块dump信息,从数据块的dump信息能看出什么
- java 获取泛型_聊聊Java泛型擦除那些事
- MSSQL Server 2008 功能
- 通过Spring Boot中的手动Bean定义提高启动性能
- 只因少写一个判空,我的代码上线后炸了!
- 如何让 Linux 下非 root 用户程序使用小于 1024 端口
- sdk的安装与环境配置
- linux mint 下安装 wwscan
- Babylongjs-动画
- 12月年末总结与新年期望
- Android waitting for debugger
- C++设计模式(全23种)
- 4、(四)外汇学习基础篇之银行间外汇远期交易
- ios越狱,impactor无法使用的替代方案
- u盘UEFI模式安装Windows10和ubuntu18.04双系统
- 【Android】时钟动态图标的定制化