美文网首页
git-workflow:Git分支和流程

git-workflow:Git分支和流程

作者: 希望是水户洋平 | 来源:发表于2022-02-05 11:52 被阅读0次

    git-workflow:Git分支和流程

    分支分类

    使用下述git分支

    • master

    master 永远处于稳定状态,这个分支代码可以随时用来部署, 具备生产发布要求的分支。
    注意:

    不允许在该分支直接提交代码

    该分支仅接受从develop分支merge代码,由git repo的maintainer负责。

    • develop分支
      集成测试和系统测试分支,比如前后端系统联调。

    注意:

    代码通过merge request的方式提交,需要经过git repo的maintainer code revie后才能合并到develop分支。

    • feature/xxx分支
      独立功能分支,有较大需求的时候,可以由feature的主开发者创建一个新的feature分支。
    • fix/xxx 分支
      生产问题修复分支。
    • dev/xxx分支
      开发者个人的分支。

    分支切换流程

    分支切换流程使用下述规则:

    简单功能开发流程
    feature/xxxdevelopmastergraph LR;
    feature/xxx-->develop;
    develop-->master;

    从master分支创建新的feature分支。
    feature分支开发完成,模块单元测试通过后,提交到develop分支。
    develop分支下联调通过,系统测试通过后,提交到master分支。

    bug修复流程

    fix/xxxdevelopmastergraph LR;
    fix/xxx --> develop;
    develop --> master;

    从master分支创建新的fix分支。
    fix分支下修复完成,单元测试通过后,提交到develop分支。
    develop分支下联调通过,系统测试通过后,提交到master分支。

    复杂功能开发流程

    dev/xxxfeature/xxxdevelopmastergraph LR;
    dev/xxx --> feature/xxx;
    feature/xxx --> develop;
    develop --> master;

    从master分支创建新的feature/xxx分支。

    从feature/xxx分支创建dev/xxx分支。
    dev/xxx分支开发完成,单元测试通过后,提交到feature/xxx分支。
    dev/xxx分支开发未结束,需要暂存分支,则可以创建新的dev/yyy分支,push到gitlab上暂存。
    feature分支开发完成,模块单元测试通过后,提交到develop分支。
    develop分支下联调通过,系统测试通过后,提交到master分支。

    生产发布

    master的分支是可用于生产的,如果需要部署某个commit,则先git tag, tag的格式为"YYYYMMDD"。
    git tag后,将tag push到生产环境(IDC)的一个git repo。再从运行目录中pull该repo.

    其他规则

    分支合并(pull request)由项目maintainer进行,使用merge方式,不建议使用rebase方式。
    分支的流程是单向的,禁止反向进行分支合并(特殊情况需要由maintainer进行cherry-pick)。
    由项目maintainer定期删除已经merge的feature/yyy分支,或确认废弃的dev/yyy分支。
    基于gitlab管理代码,issue, 和进度。
    基于gitlab管理项目文档(包括背景,方案等),统一存放在各项目的doc目录, README文件为项目描述文档。
    当一个git repo超出原项目范围时,需要通过git submodule或git subtree拆分,提高代码的重用效率。

    一些参考流程

    • feature 分支
      如果要改的一个东西会有比较多的修改,或者改的东西影响会比较大,请从 develop 分支开出一个 feature 分支,分支名约定为feature/xxx,开发完成后合并回 develop 分支并且删除这个 feature 分支,相应的操作如下:

    以 develop 分支为基础建立 feature/xxx 分支

    git checkout -b feature/xxx develop
    

    写代码,review,提交……

    feature 开发完成,合并回 develop

    $ git checkout develop
    $ git pull
    $ git merge feature/xxx
    

    删除本地的 feature 分支

    $ git branch -d feature/xxx
    注意,只有git repo的Maintainer可以删除git repo的分支。
    如果想要当前分支能保持与 develop 的更新,请用 rebase,操作如下:

    假设当前在 feature/xxx 分支

    git rebase develop
    

    rebase 会修改历史,如果你的 feature 分支是跟人合作开发的,请互相做好协调。

    • 版本发布
      当需要跟踪git的历史发布过程时,可以使用release分支。
      这个时候从 master 分支上开出一个 release 分支,来做发布前的准备,分支名约定为 release/<Major version>.<Minor version>.<Patch version>,比如 release/1.0.0,
      其中. 一致的版本对外接口保持一致。
    git checkout -b release/1.0.0 master
    

    相关文章

      网友评论

          本文标题:git-workflow:Git分支和流程

          本文链接:https://www.haomeiwen.com/subject/ljwekrtx.html