Git 开发部署流程
Git 开发部署流程
采用业界成熟方案 Git Flow 分支方式进行开发;一个经典的 Git 开发/部署流程包括几个环境:本地开发环境、线上测试环境、线上生产环境,分别对应git的本地工作环境、develop 分支、master 分支
无图言屌
- 本地开发环境 : 本地仓库分支工作环境
- 线上测试环境 : 远程 develop 分支
- 线上生产环境 : 远程 master 分支
先在本地进行开发,做一次完整的提交 push 到 develop 分支,进行线上测试,一切正常 push 到 master 分支,一个完整的部署过程over.
Git Flow
图示
分支职责
- master : 最为稳定功能最为完整的随时可发布的代码;
- develop : 永远是功能最新最全的分支;
- hotfix : 修复线上代码的 bug;
- feature : 某个功能点正在开发阶段;
确切的说 master、develop 分支大部分情况下都会保持一致,只有在上线前的测试阶段 develop 比 master 的代码要多,一旦测试没问题,准备发布了,这时候会将 develop 合并到 master 上.
但是我们发布之后又会进行下一版本的功能开发,开发中间可能又会遇到需要紧急修复 bug ,一个功能开发完成之后突然需求变动了等情况,所以 Git Flow 除了以上 master 和 develop 两个主要分支以外,还提出了以下三个辅助分支:
- feature : 开发新功能的分支, 基于 develop, 完成后 merge 回 develop
- hotfix : 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop
实际开发中release分支用的比较少,对我们不太适用,所以不在开发流当中
流程
下载项目
首先安装 SSH keys : 详细教程
项目管理员会首选在远程仓库创建仓库,并建立develop分支.
作为开发人员,在本地:
git clone git@code.aliyun.com:your_org/your_project.git
git branch -a -v
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
建立 develop 分支
git checkout -b develop master
## add & commit .....
git push –set-upstream origin master
git branch -a -v
分支开发
以开发功能分支 feature/search-recommend 为例,工程师需要做以下步骤:
- 建立 develop 的分支 feature/search-recommend
- 在该分支上进行开发,完成后进行本地提交
- 切换到 develop 分支,pull拉取远程仓库最新版本
- 此时本地 develop 分支是最新版本,然后 merge 分支 feature/search-recommend
- 如果此时有冲突,清除后commit
- 把本地合并后的分支 develop push 到远程 develop
- 在 develop 分支环境下进行测试
- 一切ok,删除该功能分支
- 切到 master 分支,pull 然后 merge develop,收工
遵循原则&事项
- 每次 merge 前先 pull 远程分支在进行合并
- 每完成一个功能就提交一次,不要累计代码
代码
git checkout -b feature/search-recommend develop ##创建并切换到分支
git add somefile
git commit -m 'msg'
git checkout develop
git pull
git merge feature/search-recommend
git push
git checkout master
git merge devlop
git push
紧急修复bug
工程师们开开心心的在自己分支上进行开发,此时线上突然出现一bug,需要立即修复,那么:
- 在 master 分支上拉一个 hotfix 分支 hotfix/0.0.1
- 修复后 merge 回 master 分支
- 再 merge 回 develop 分支
- 删除该分支
- 应始终保证 master 和 develop 上都修复了该bug
命名规范
分支命名
除了主要分支的名字是固定的之外,派生分支是需要自己命名的,采用如下形式:
- feature : 按照功能点(而不是需求)命名 feature/ ;如 *feature/weixin_recharge
- hotfix : 通过平台生成的问题编号来命名;如 hotfix/#1
Git 开发部署流程相关推荐
- 【FPGA-F3】阿里云FAAS平台,极大简化FPGA开发部署流程
摘要: 阿里FPGA云服务器平台FaaS(FPGA as a Service)在云端提供统一硬件平台与中间件,可大大降低加速器的开发与部署成本.普惠开发者 FPGA (现场可编程门阵列)由于其硬件并行 ...
- Jenkins+Maven+Git自动部署流程(从环境搭建到部署超级全面)
说明:本次流程功能是,我们只要上传代码到git平台后面就不用我们管了,jenkins就能自动将我们git原代码编译测试部署发布到生产环境,不用我们每次都自己打包jar包再拉到linux环境java - ...
- 小程序-云开发部署流程(步骤二)
在完成上个流程"小程序-(报错)请使用 2.2.3 或以上的基础库以使用云能力(步骤一)"后,就需要开始以下的流程了: 1.此时页面正常显示,未有明显报错,如图: 2.明显的流程一 ...
- 从个人到创业团队都能用的项目开发部署流程!建议收藏!
生活中没有弱者,仅有不愿努力的人.
- 22081-12-12 系统移植(TF-A移植和linux操作系统开发阶段流程总结)
//移植流程 1.将uboot镜像文件固化到开发板的TF卡或者EMMC设备中 2.在ubuntu的~/tftpboot目录下,准备tftp服务器要下载的文件(镜像文件和设备树文件) 3.通过开发板的拨 ...
- 一物一码(6): 一物一码之【开展一物一码营销活动基本流程2,设计开发部署,生产包装,活动上线】
二维码应用:一物一码[合集] (1) 二维码基础,以及js encode/decode QRCode纯前端实现 (2) 一物一码之[红包那点事] (3) 一物一码之[精准营销] (4) 一物一码之[得 ...
- 开源项目: 揭秘10分钟如何搞定开发部署全流程!
关注+星标公众号,不错过精彩内容 来源 | 百度飞桨 想要应用AI技术进行产业智能化升级,又担心缺乏计算机.数学等理论基础? AI算法训练完成,优化部署上线又是一个趟不过去的大坑? 别担心,今天就教大 ...
- git 迭代开发分支流程规范
前言 Git 的名称太响了,相信大家都听说过,鼎鼎大名的同性交友网站 GitHub 就是基于 Git 作为唯一的版本库格式进行托管的平台.本篇不详细介绍 Git 的使用,仅介绍基于 Git 的开发分支 ...
- travis ci_如何使用Travis CI和GitHub进行Web开发工作流程
travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...
最新文章
- centos7 firewall 防火墙 命令
- jquery生成二维码
- 一些著名的大公司JAVA面试题目
- 性能测试总结(三)--工具选型篇
- 扎心!程序员泪奔的8个瞬间
- 习惯性朴实简单!一起学习MySQL常见单行函数,字符数学日期流程控制
- Javascript之ES7详解
- java面试题常见的坑_java那些年踩过面试题的坑,你是否依旧记忆犹新!
- 计算机工作组如何添加打印机,局域网添加打印机,详细教您局域网打印机怎么添加...
- asp与php的区别
- 【程序员如何买基金 一】基金的优势及分类
- unity3d 毛笔笔锋
- Linux编译dd源码
- 技术质量部年度工作总结
- TF实战丨使用Vagrant安装Tungsten Fabric
- Go标准库syscall调用dll
- 基于汇编语言的DS18B20温度传感器设计
- 773-780---DOM事件高级(常用鼠标事件,案例:跟随鼠标的天使,常用的键盘事件,案例:模拟京东按键输入内容,案例:模拟京东快递单号查询)
- wxPython官方文档翻译第一期初稿
- ROS入门、ROS完整教程