• git 使用规范


    分支命名及使用说明

     

    master分支

    master 为主分支,线上环境分支。确保master分支的稳定性;
    master 分支只从release、hotfix两条分支合并代码;

    master 分支是受保护的,只能固定的PM能做合并

     

    release分支

     

    release 为预发布分支,测试完成后从maser分支创建一条release分支,合并已确定需要上线的功能分支(如果确保功能可以全部上线,那就从develop分支创建一条release分支即可)

    release 分支是指以release/开头的特性分支,并不是指某一条分支。命名规则为:release/0.1.0、release/0.2.0; 

    release 发布至准生产环境,测试人员进入准生产环境进行上线前回归,产品进行验证; 

    release 发布到准生产后,如果有问题直接在release分支进行修改,重新发布准生产;

    release 验收成功后合并至master分支进行生产发布;

     

    develop分支

    develop 为最新的开发分支,最新已提测功能,修复功能Bug后的开发代码; 

    develop 分支是不可以做编码工作;

    develop 分支也是受保护的,每次合并应当执行代码审查,固定的PM做合并;

    develop 分支合并完成后即发布到测试环境进行测试;

    develop 分支除了可以往release分支合并,禁止往其他分支进行合并; 

     

    feature分支

     

    feature 分支一定要从master分支拉取,并且如果开发中有其他功能上线,需要及时同步master分支代码; 

    feature 分支是指以feature/开头的特性分支,并不是指某一条分支。命名规则为:feature/user_model、feature/order_model; 

    feature 特性分支下应该固定有一条feature/common_model分支,用于开发正在开发中需要用到的公共功能开发,他也不允许合并其他分支;

    feature 分支在开发过程中可以允许合并feature/common_model分支,但不允许合并其他的功能分支;

     
     

    hotfix分支

     

    hotfix 分支为线紧急Bug修复分支。他直接从master分支拉取;

    hotfix 分支是指以hotfix/开头的特性分支,并不是指某一条分支。命名规则为:hotfix/1.01_bug、feature/1.20_bug;

    hotfix 分支修复完Bug后直接发布至准生产环境,产品,测试快速测试,测试通过则合并回master分支;

    hotfix 分支上线完成需要通知其他feature开发分支拉取最新的master代码;

     
     

    应用场景

     

    场景一:新功能开发

     

    某天产品老大跑来跟你说,我们的平台要加个学生入学和学生退学的功能。这时候我们该怎么做呢?

     
     

    第一步:先从master拉取新分支,两条新功能分支;

     
    $: git checkout -b feature/enterSchool_model  //入学功能分支
    $: git checkout -b feature/outSchool_model    //退学功能分支
     
     

    第二步:第一天各自开发功能,下班时提交代码至远程

     
    $: git checkout  enterSchool_model
    $: git add .   
    $: git commit -m '第一天A同学的开发成果'
    $: git push     //推送到远程 
     

    第三步:第二天来上班时,发现平台昨晚有上线新功能了,先拉取master代码到自己的分支再开始开发

     
    //拉取master代码至自己的开发分支
    $: git checkout master   
    $: git pull origin master 
    $: git checkout enterSchool_model
    $: git merage master//继续第二天的开发
    $: git add .   
    $: git commit -m '第二天A同学的开发成果'
    $: git push //推送到远程
      

    第四步:就这样第三步重复直到功能开发完成,开发完成后向develop发起合并请求;

     
     

    第五步:PM进行代码审核,(如果不通过,开发人员继续在自己的功能分支修改代码,完成后,重新回到第四步)通过后发布至测试环境;

     
     

    第六步:测试人员进行测试,(如果有Bug,开发人在自己功能分支修改Bug,完成后,重新执行第四步)直至测试通过;

     
     

    第七步:从develop分支创建release分支,进行准生产环境验收测试。(如果只能上线部分功能则从master分支创建release分支,合并需要上线的功能分支);

     
     

    第八步:验收有Bug,开发人员直接在release分支进行紧急修复,并直接发布至准生产环境;

     
     

    第九步:验收通过release分支合并至master,并发布至生产环境;

     
     

    第十步:通知其他还在开发的人员直接同步master分支代码

     
     

    场景二:公共功能开发

     

    还是同上面的故事,前端团队在拿到需求进行分工时。发现两个人的页面都有一个学生信息的弹窗,还有都需要一个时间格式化方法。这时候俩人一合计打算把这个学生信息弹窗做成一个业务公共组件,格式化时间抽出来做公共方法。那这时候我们应该怎么做呢?

     
     

    第一步:一样先拉两条功能模块分支,然后再创建一条叫feature/common_model的公共功能分支;

     
    $: git checkout -b feature/enterSchool_model  //入学功能分支
    $: git checkout -b feature/outSchool_model    //退学功能分支
    $: git checkout -b feature/common_model    //公共功能分支
     
     

    第二步:俩人中选一个人在公共功能分支上开始开发公共功能,另一人还是在自己的功能分支上开发与公共功能不相关的业务;

     
     

    第三步:公共功能开发完成,则通知其他开发人员直接合并feature/common_mode分支代码;

     
     

    第四步:业务开发人员合并代码开始整合与公共功能部分,如果有问题则通知组件开发人员修改,重新回到第三步;

     
     

    第五步:业务开发人员继续开发,直到功能开发完成。向develop分支发起合并请求,并提测。剩下步骤参考场景一;

     
     

    (公共功能开发也可以第三人来开发)

     
     

    场景三:线上Bug修复

     

    我们上面的功能完成后,突然有一天某位同事发现了一个Bug,入学的时候少存了一个重要信息,需要紧急修复。这时候我们该怎么操作呢?

     
     

    第一步:从master拉hotfix分支

     
    (master)$: git checkout -b hotfix;
     
     

    第二步:修改Bug并提交,

    $: git add .
    $: git commit -m '修复的bug描述XXXX';
    $: git push 
     
     

    第三步:直接把hotfix分支发布至准生产环境。测试、产品进行测试、验收,(验收不通过重新执行第二步,直至验收、测试完成);

     
     

    第四步:验收通过合并回master分支,并发布至生产;

    (master) $: git merage hotfix/xx_bug

    第五步:生产上线成功,通知其他正在开发的人员进行代码同步。各feature分支直接同步master代码即可

     

  • 相关阅读:
    【网络安全】telnet 登陆远程服务器
    【网络安全】window 快速搭建 ftp 及 多种访问方式
    科普:PCI-E插槽都有哪些样子?
    Memory及其controller芯片整体测试方案(下篇)
    Memory及其controller芯片整体测试方案(上篇)
    超通俗易懂科普:什么是光通信?
    PCB各层介绍及AD软件画PCB时的规则
    第一次接触FPGA至今,总结的宝贵经验
    嵌入式码农的10年Bug调试经验,值得一看
    做嵌入式驱动的,你一定要挺住!
  • 原文地址:https://www.cnblogs.com/hrw3c/p/15882607.html
Copyright © 2020-2023  润新知