【git之窗】(十七)线上问题如何拉取紧急分支

一、前提

      通常使用git,都会在上线前把代码合并到master分支,在master上打好tag,由上线tag、回退tag确保上线正常。

      例如:

      上线tag: VINCENT_tag_V1.3.1

      回滚tag: VINCENT_tag_V1.3.0

二、问题

     如上所述,如果master上线的tag(VINCENT_tag_V1.3.1)在生产环境里出了问题,我们除了对已上线tag通过回退tag(VINCENT_tag_V1.3.0)进行代码回滚之外,如果遇到如下几种特殊情况:

        1.master分支在此次上线之后,由有新的功能合并进来了。

        2.此次上线修改的内容不止1个人的修改,上线内容非常多。

         当满足上述2种情况时,其实通过回滚tag来使生产环境不报错,是不合适的。

         条件1,一旦master回滚,会把别人刚合并进来的代码冲掉。

         条件2,回滚之后,这次别人上线的内容也不在了,如果问题特别紧急,协调人力会比改代码费劲。

三、解决策略

       在已经上线的tag基础上,抽出一个分支:

        举例:

       git branch vincent_branch_V6.6.6 VINCENT_tag_V1.3.1 

       即:

       git branch (新的分支名称) (线上问题tag号)

       如上,即可避免2种问题情况,解决紧急的线上问题。

四、原理

        

       原理就是红框中的那道红线。

       That's all.

猜你喜欢

转载自blog.csdn.net/u013047584/article/details/81951239