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 为例,工程师需要做以下步骤:

  1. 建立 develop 的分支 feature/search-recommend
  2. 在该分支上进行开发,完成后进行本地提交
  3. 切换到 develop 分支,pull拉取远程仓库最新版本
  4. 此时本地 develop 分支是最新版本,然后 merge 分支 feature/search-recommend
  5. 如果此时有冲突,清除后commit
  6. 把本地合并后的分支 develop push 到远程 develop
  7. 在 develop 分支环境下进行测试
  8. 一切ok,删除该功能分支
  9. 切到 master 分支,pull 然后 merge develop,收工

遵循原则&事项

  1. 每次 merge 前先 pull 远程分支在进行合并
  2. 每完成一个功能就提交一次,不要累计代码

代码

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,需要立即修复,那么:

  1. 在 master 分支上拉一个 hotfix 分支 hotfix/0.0.1
  2. 修复后 merge 回 master 分支
  3. 再 merge 回 develop 分支
  4. 删除该分支
  5. 应始终保证 master 和 develop 上都修复了该bug

命名规范

分支命名

除了主要分支的名字是固定的之外,派生分支是需要自己命名的,采用如下形式:

  • feature : 按照功能点(而不是需求)命名 feature/ ;如 *feature/weixin_recharge
  • hotfix : 通过平台生成的问题编号来命名;如 hotfix/#1

Git 开发部署流程相关推荐

  1. 【FPGA-F3】阿里云FAAS平台,极大简化FPGA开发部署流程

    摘要: 阿里FPGA云服务器平台FaaS(FPGA as a Service)在云端提供统一硬件平台与中间件,可大大降低加速器的开发与部署成本.普惠开发者 FPGA (现场可编程门阵列)由于其硬件并行 ...

  2. Jenkins+Maven+Git自动部署流程(从环境搭建到部署超级全面)

    说明:本次流程功能是,我们只要上传代码到git平台后面就不用我们管了,jenkins就能自动将我们git原代码编译测试部署发布到生产环境,不用我们每次都自己打包jar包再拉到linux环境java - ...

  3. 小程序-云开发部署流程(步骤二)

    在完成上个流程"小程序-(报错)请使用 2.2.3 或以上的基础库以使用云能力(步骤一)"后,就需要开始以下的流程了: 1.此时页面正常显示,未有明显报错,如图: 2.明显的流程一 ...

  4. 从个人到创业团队都能用的项目开发部署流程!建议收藏!

    生活中没有弱者,仅有不愿努力的人.

  5. 22081-12-12 系统移植(TF-A移植和linux操作系统开发阶段流程总结)

    //移植流程 1.将uboot镜像文件固化到开发板的TF卡或者EMMC设备中 2.在ubuntu的~/tftpboot目录下,准备tftp服务器要下载的文件(镜像文件和设备树文件) 3.通过开发板的拨 ...

  6. 一物一码(6): 一物一码之【开展一物一码营销活动基本流程2,设计开发部署,生产包装,活动上线】

    二维码应用:一物一码[合集] (1) 二维码基础,以及js encode/decode QRCode纯前端实现 (2) 一物一码之[红包那点事] (3) 一物一码之[精准营销] (4) 一物一码之[得 ...

  7. 开源项目: 揭秘10分钟如何搞定开发部署全流程!

    关注+星标公众号,不错过精彩内容 来源 | 百度飞桨 想要应用AI技术进行产业智能化升级,又担心缺乏计算机.数学等理论基础? AI算法训练完成,优化部署上线又是一个趟不过去的大坑? 别担心,今天就教大 ...

  8. git 迭代开发分支流程规范

    前言 Git 的名称太响了,相信大家都听说过,鼎鼎大名的同性交友网站 GitHub 就是基于 Git 作为唯一的版本库格式进行托管的平台.本篇不详细介绍 Git 的使用,仅介绍基于 Git 的开发分支 ...

  9. travis ci_如何使用Travis CI和GitHub进行Web开发工作流程

    travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...

最新文章

  1. centos7 firewall 防火墙 命令
  2. jquery生成二维码
  3. 一些著名的大公司JAVA面试题目
  4. 性能测试总结(三)--工具选型篇
  5. 扎心!程序员泪奔的8个瞬间
  6. 习惯性朴实简单!一起学习MySQL常见单行函数,字符数学日期流程控制
  7. Javascript之ES7详解
  8. java面试题常见的坑_java那些年踩过面试题的坑,你是否依旧记忆犹新!
  9. 计算机工作组如何添加打印机,局域网添加打印机,详细教您局域网打印机怎么添加...
  10. asp与php的区别
  11. 【程序员如何买基金 一】基金的优势及分类
  12. unity3d 毛笔笔锋
  13. Linux编译dd源码
  14. 技术质量部年度工作总结
  15. TF实战丨使用Vagrant安装Tungsten Fabric
  16. Go标准库syscall调用dll
  17. 基于汇编语言的DS18B20温度传感器设计
  18. 773-780---DOM事件高级(常用鼠标事件,案例:跟随鼠标的天使,常用的键盘事件,案例:模拟京东按键输入内容,案例:模拟京东快递单号查询)
  19. wxPython官方文档翻译第一期初稿
  20. ROS入门、ROS完整教程

热门文章

  1. 便捷效率处理CAD转PDF方法你知道吗?
  2. 甘肃省全国计算机等级考试(NCRE)报名
  3. Android 微信登录详细流程
  4. 专题·关基保护 | 国家关键信息基础设施安全保护的法治进展
  5. 渗压计的使用安装方法
  6. 三节课-产品视角养成
  7. 一个极简单的基于STM32的精确PWM脉冲计数
  8. IIS的ARR搭建本地服务器的不停机更新(负载均衡,分布式服务器,集群)
  9. xctf 攻防世界 MISC
  10. 『Kali nethunter系列』手机发起“badUSB”攻击(Rucky,Rucky脚本)