浅谈git开发流程规范

       git是当前比较流行的版本管理工具,趁着今天有空,对我们实际使用的情况做一个总结。

1. 主要分支:master、develop

       master:永远和线上产品最后一次发布的代码一致,保证随时可发布
  
  develop:最新的开发完整功能的分支(完整功能是指某个模块、需求或者特性完全开发完成后才合并到develop上)
  这两个分支,所有开发人员都没有push权限,只有开发组长或者其他专人有merge权限,开发人员在自己的分支开发完成后,提交merge请求,开发组长或者其他专人负责review后进行合并。

2. 其它分支:feature、hotfix、release

       feature:功能开发分支。某(几)个开发人员在开发某个功能的时候,从develop上自行拉取分支,待功能开发完成,合并到develop,然后提测。我们的命名规范为:feature-姓名-开发的功能-日期。如:feature-zhangsan-orderList-20181020
  
  hotfix:紧急处理线上bug的分支。在线上有紧急bug需要修复的时候,从master拉取,修改完成测试通过之后,发布正式,然后合并到master和develop。命名规范同feature。如:hotfix-zhangsan-importBugFix-20181020
  
  release:发布分支。某个迭代开发完成,即将发布的时候从develop拉取此版本,此时,所有此次要发布的feature已经合并到了develop,这个版本只是用来做面向此次发布的工作,比如修复bug、打包发布等等。测试通过,发布之后,将此分支合并到master和develop。命名规范我们是按照迭代名称来取的,如:release-18.6.2-20181020
  
  ps:每次发布完成合并后,要从master打tag,并删除已发布分支,上面就没有一一说明了
  
  下面特地画了一张图:
浅谈git开发流程规范

以上是我的理解和用法,如有不正确的,还请指正。