git-代码开发发布流程


本文讨论业务接触到的git发布流程,在此记录和分享。
欢迎讨论和吐槽。

方案1

这是在我第一家公司的经验,刚开始我们团队的发布系统是内部的发布系统,而后使用的是jenkins发布。
以下流程为文字描述,希望可以描述清楚。
公司开发分本地,测试,预发,线上环境,相应的项目有master,develop,test远程分支。

  1. 本地pull develop和test分支,在develop分支上切出a分支进行功能开发,在本地环境测试;
  2. 本测试完毕,更新本地test分支,将a分支合并到test,推送远端,然后放到测试环境(这样可以满足多个开发在同一个测试环境测试);
  3. 测试环境测试ok,更新本地develop,合并a分支(有冲突合作解决冲突),推送,然后发到预发环境测试。
  4. 预发环境测完后发布上线(用的master分支,开发只有推送远端develop的权限,合并master只有权限更高的人可操作)。

    方案2

    这是我第二家公司了解的发布流程。
    同样,公司分本地,测试,预发,线上环境,项目有master,develop分支远程分支。

  5. 开发a拥有远端a分支,用户本地开发,本地测试。

  6. 本地测试完成,代码合并推送远端a分支,a拥有自己的测试环境,a分支代码如测试环境1测试,和别人的并行功能互不影响;
  7. 测试环境测试完毕,a代码合并入预发,简单验证后上线。此时可能会同时两个人需要发预发,但是到这一步因流程较快,进行串行操作,a验证完了b才能合进来验证;
  8. 预发确认完毕,上线。

分析

两种方案都解决了一定的问题,也都还存在瑕疵。
前者开发发布不受别人影响可以在统一环境测试,但是因为在同一环境,测试中还是可能有问题;
后者发布测试环境独立,但是预发环境串行可能效率存在问题,而且后一个人的代码和前一个人没有一起在测试环境验证,到了预发合并后,可能存在问题(对前者)。


文章作者: Xudong Jiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Xudong Jiang !
 上一篇
jquery-autocompleter使用介绍 jquery-autocompleter使用介绍
本文分享使用jquery-autocompleter模板。欢迎讨论和吐槽。 使用场景在业务中遇到需求希望可以在输入框中输入游戏名称的一部分,然后自动补全出含游戏id-游戏名称的下拉选项供选择。 使用案列 业务中的实现代码如下:var gam
2016-04-17
下一篇 
最大子序列和问题求解 最大子序列和问题求解
本系列主要整理分享对一些数据结构和算法问题的总结和思考,供基础相对较差的人渐进地学习,也是自身复习和寻求提升的过程。(代码部分借鉴和取自数据结构和算法书籍)本文主要分享对最大子序列求和问题的求解和思考。欢迎讨论和吐槽。 问题描述 给定整数A
  目录