最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 开发笔记(3):GitFlow前端

    正文概述 掘金(lambrobert)   2021-04-02   707

    Git分支模型(Git Branching Model)

    feature  develop   relese     hotfixes   master
    branchs    |       branchs       |          |
    |          |          |          |          |
    |          |          |          |          |Tag 0.1
    |          |          |          |          |
    |          |          |          |          |Tag 0.2
    |          |          |          |          |
    |          |          |          |          |
    

    Git Flow工作流程详解

    1. master分支

    • 所有在master分支上的commit都应该打tag
    • 注意majorminor版本号区分
            v0.1        v0.2         v0.3          v1.0 
    master:   • -------→ • --------→ • --------→ • ---- +∞
    

    2. feature分支

    • 分支名feature/*
    • feature分支做完后,必须合并develop分支,且合并完成之后一般会删除这个feature分支
            v0.1        v0.2         v0.3          v1.0 
    master:   • -------→ • --------→ • --------→ • ---- +∞
              |                                  ↑
              ↓                                  |
    develop:  • -------→ • --------→ • --------→ • ---- +∞
              |          |           ↑           ↑
              |          ↓           |           |
    feature:  |          • --------→ •           |
              |                                  |
              ↓                                  |
    feature:  • -------→ • --------→ • --------→ •
    

    3. release分支

    1. 分支名release/(版本号)
    2. release分支是基于develop分支创建的,打完release分支之后,我们可以在这个release分支上进行测试,修改bug等.
    3. 同时,其他开发人员可以基于此,去开发新的feature分支.
    4. 原则是:
    5. 打了release分支之后,不要再从develop分支上合并新的改动到release分支.
    6. 如果是合并到master分支,记得打个tag记住relese版本号,然后可以删除这个分支了
            v0.1        v0.2         v0.3          v1.0 
    master:   • -------→ • --------→ • --------→ • ---- +∞
              |                                  ↑?
    release:  |                      • --------→ •     
              ↓                      ↑           ↓?
    develop:  • -------→ • --------→ • --------→ • ---- +∞
              |          |           ↑           ↑
              |          ↓           |           |
    feature:  |          • --------→ •           |
              |                                  |
              ↓                                  |
    feature:  • -------→ • --------→ • --------→ •
    

    4. hotfix分支

    1. 分支名hotfix/*
    2. hotfix分支基于master分支创建,开发完后需要合并回masterdevelop分支,同时在master上打一个tag
            v0.1        v0.2         v0.3          v1.0 
    master:   • -------→ • --------→ • --------→ • ---- +∞
              |          ↓           ↑           ↑
              |          • --------→ •           |
              |          |                       |?
    release:  |          |           • --------→ •     
              ↓          ↓           ↑           ↓?
    develop:  • -------→ • --------→ • --------→ • ---- +∞
              |          |           ↑           ↑
              |          ↓           |           |
    feature:  |          • --------→ •           |
              |                                  |
              ↓                                  |
    feature:  • -------→ • --------→ • --------→ •
    

    5. support分支

    1. Git Flow没有真正涵盖support分支,但是如果需要同时维护多个主要版本,则是必不可少的.
    2. 同时,也可以使用support分支来支持minor版本.
    3. 如果只是支持major,命名support/<major>.x,minor版本为support/<major>.<minor>.x

    GIt Flow工具使用

    客户端工具

    • windowsmac: sourcetree客户端,内置Git Flow流程.
    • windows:git bash(git for windows)中内置了gitflow-scripts.
    • linux:内置giflow-scripts.

    npm工具standard-version

    作用

    • 作用:1.生成changelog 2.更新package.jsonpackage.lock.json中的version字段.
    • changelog只在发版本的时候生成.

    注意:Git Flowstandard-versiontag功能的冲突.

    • Git Flowstandard-version在使用的过程中,都有自动打tag的功能.但是两者都支持跳过tag阶段.

    • 建议两者任选其一:

    • 跳过standard-version打tag

    • 方法一: package.json

    {
      "standard-version": {
        "skip": {
          "tag": true
        }
      }
    }
    
    • 方法二:command line
    standard-version -r mirror --skip.tag
    
    • 跳过git flow打tag
      • command line
    git flow release finish v0.2.0 -n -m "chore(release): 0.2.0"
    

    运行时机

    • 场景1: release分支流程中的运行
    # 1. release开始阶段
    git flow release start v0.2.0
    # 2. commit并附带message,可以使用git cz替代
    git commit -m 'fix(src): 修复问题' 
    # 3. (可选) 如果需要在release/* 分支上,生成beta测试阶段的changelog 
    npx standard-version -p beta
    # 4. standard-version不打tag,使用git flow的tag功能 
    npx standard-version -r v0.2.0 
    # 5.  release结束阶段
    git flow release finish v0.2.0 -m "chore(release): 0.2.0" 
    # 如果你使用了standard-version的tag功能,git flow应该跳过tag 
    # git flow release finish v0.2.0 -n -m "chore(release): 0.2.0"
    
    • 场景2: hotfix分支流程中运行
    # 1. hotfix开始阶段
    git flow hotfix start v0.2.1 
    # 2. commit并附带message,可以使用git cz替代 
    git commit -m 'fix(src): 修复问题' 
    # 3. standard-version不打tag,使用git flow的tag功能
    npx standard-version -r v0.2.1
    # 为了防止版本号冲突我们可以使用patch自增版本号 
    # npx standard-version -r patch 
    # 4. hotfix结束阶段
    git flow hotfix finish v0.2.1 -m "chore(release): 0.2.1" 
    # 如果你使用了standard-version的tag功能,git flow应该跳过tag 
    # git flow hotfix finish v0.2.0 -n -m "chore(release): 0.2.1"
    

    standard-version在Git Flow不同流程阶段注意的问题

    • release流程中注意事项:
      • 原则: 在Git Flow流程中release应该在hotfix之后创建:
      • 场景: releasehotfix之前创建 & hotfix中生成changlog & release中生成beta版的changelog.
      • 问题:
        • 如果在创建release分支之后,出现并修复hotfix并生成了changelog.
        • 那么hotfix finish之后release finish就会造成release合并到masterdevelop时出现冲突.
      • 解决:
        • 原理: 使release分支包含hotfix内容
        • 方案1: release分支在hotfix之后创建.
        • 方案2: hotfix提取成patch,在release分支上apply.
    • hotfix流程中注意事项:
      • 场景1: hotfix中生成changelog
      • 注意: 如果release分支在hotfix finish之前建立,会出现release分支一样的问题
      • 场景2: hotfix中不生成changelog
      • 注意: 如果release分支在hotfix finish之前建立,会造成hotfix修复的日志无法出现在changelog中
      • 解决:
        • 原理: 使release分支包含hotfix内容
        • 方案1: release分支在hotfix之后创建.
        • 方案2: hotfix提取成patch,在release分支上apply.
    • standard-version不带参数使用:
      • 如果不指定参数直接使用standard-version命令,standard-version会自动分析commit message类型.
      • commit message中,如果包含:
        • patch就累加path,
        • feat就自动累加minor,
        • break change就自动生成major版本号.
      • 风险较大建议指定参数.

    起源地下载网 » 开发笔记(3):GitFlow前端

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元