一、项目简介

文章内容以我自己实际负责的项目前端代码的管理为例,每个公司的git工作流设计应以公司的实际为准,该分享仅做参考。

1、项目架构设计:

采用基于qiankun的前端微应用(基座应用+业务模块应用)架构设计。项目所管理的供应商达4000+,用户人数达200000+,每天同时在线用户数基本维持在4000至6000,整体来说可以算是一个非常庞大的To B项目了。

2、项目目录结构:

└─web    # 项目文件夹├─portal # 基座应用,实现项目UI的主体框架、登录等功能(也可以认为这是一个业务模块)├─system # 系统管理业务模块├─contract # 合同管理业务模块├─…… └─package.json # 全局自动化脚本命令,例如:安装依赖、升级依赖、启动多个项目、项目整体打包等等。

3、项目实际情况:

1、由于项目比较复杂,而且我们希望每个业务模块的代码作为独立为子模块进行版本控制;

2、项目开发团队分布于多地,每个业务模块都有独立负责人;

3、作为前端整体负责人,我只关心整个项目前端部分的代码管理、具体业务模块的管理应由对应的负责人管理。

4、每一个业务模块都是一个独立且完整的Vue项目。

二、git仓库设计

为了保持跟上述项目目录结构一致,每个业务应用、基座应用都新建单独的git仓库,再新建一个web仓库(功能类似于项目文件夹),用于存储web目录下的package.json文件及其他文件,以及跟其他仓库的关联信息。

通过git submodule add <submodule_url>将所有的业务模块仓库、基座应用仓库跟web仓库关联起来。

通过git clone <web_url> --recurse-submodules取代所有前端代码,<web_url>为web仓库的地址。

三、 分支介绍

每个仓库默认四个分支:

1、开发分支(develop)、

2、测试分支(test)、

3、预生产分支(staging)

4、生产分支(master)

1、开发分支介绍:

主要用于开发环境代码管理,只有相关业务模块负责人拥有提交合并的权限。

1、在开发者完成一个完整的功能或者需求开发时,发起合并请求,由相关业务模块负责人在对代码进行质量检查之后合并进开发分支;

2、每次合并申请的代码必须是一个完整的功能或者需求;

2、测试分支介绍

主要供项目功能测试使用,只有相关业务模块负责人拥有提交合并的权限。

当一个业务模块或者独立需求完成开发之后,由相关业务模块负责人提出测试申请,在请求通过之后由该负责人从开发分支同步代码至测试分支。

3、预生产分支介绍

主要用于预生产测试,只有相关业务模块负责人拥有提交合并的权限。

测试人员在测试分支测试完一个业务模块或者独立需求后,认为具备预生产发版条件之后,由相关业务模块负责人从测试分支同步代码至预生产分支。

4、生产分支

主要用于生产版本代码留存及线上紧急bug修复,只有相关业务模块负责人拥有提交合并的权限。

根据需求交底会议确定发版时机及发版内容,发布之后必须及时新建tag(命名规范: v.1.0.1、v.1.0.2……)保留备份,方便版本回滚。

线上bug修复以生产分支为基础,新建bug分支(命名规则:hotfix-禅道bug号),bug修复之后代码应由相关业务模块负责人同步至预生产分支,由测试人员在预生产环境进行回归测试,如过bug得到解决则由相关业务模块负责人同步代码至生产及其他分支,并删除该远程分支记录。

三、角色介绍

在整个git工作流的设计中,主要有项目负责人业务模块负责人开发者三种角色。

1、开发人员:主要负责日常功能开发。

1、开发人员必须在远程仓库新建个人分支(命名规则:个人姓名全拼);

2、远程个人分支代码管理提交不做任何要求;

3、开发分支(develop)代码提交合并应是一个完整的功能或者需求(可将本地多次提交记录合并之后再提交至开发分支)。

2、业务模块负责人:主要该业务模块git仓库的管理。

业务模块负责人为整个git工作流程的核心人员。

1、负责代码的合并及质量检查工作;

2、在处理开发分支的代码合并申请时,需对代码质量把控负责。代码质量检查主要分为:代码规范,代码明显的逻辑错误检查……

3、当开发满足对应分支节点的要求时,应及时同步代码(测试分支同步,预生产同步,生产同步);

4、远程仓库个人分支的管理。

3、项目负责人:负责群组及各个仓库人员及权限管理。

1、web仓库各分支信息的同步工作(自动化发版流程依赖于各分支package.json文件中的全局自动化脚本命令);

2、各个业务模块的依赖管理(保证各业务模块依赖的一致性);

四、git常用操作

1.项目克隆

1、可通过命令:git clone <web_url> --recurse-submodules 直接克隆所有业务模块代码。

2、先通过git clone <web_url>命令克隆web仓库,然后通过cd web进入到clone好的web仓库目录,再通过git submodule init初始化关联仓库,最后通过git submodule update更新子仓库代码。

2.分支管理:

1、新建本地分支:git checkout -b lizhijie 新建本地分支之后可以通过 git push origin lizhijie将本地分支代码同步至远程并新建 lizhijie 分支。

2、删除远程分支:需先切换至其他分支,然后通过 git push origin –delete lizhijie 就可以删除远程仓库lizhijie分支。

注:此操作只是删除了远程仓库分支,并没有删除本地仓库分支。

3.本地代码提交记录合并

可使用git rebase -i HEAD~2 命令合并两条提交记录,完成本地代码提交记录合并之后可通过 git push -f origin lizhijie 强制推送至远程仓库的个人分支,完成远程仓库代码提交记录的合并。

往期内容:

一、半天时间掌握Dart开发语言-基础学习

二、半天时间掌握Dart开发语言-类的学习

三、【Flutter开发环境搭建】Java SDK安装

四、【Flutter开发环境搭建】Android SDK、Dart SDK及Flutter SDK安装_

五、Flutter路由传参

六、flutter全局状态管理Provider

七、Flutter自定义iconfont字体图标

八、Flutter网络请求Dio库的使用及封装

多团队协作开发的大型项目Git工作流设计分享相关推荐

  1. java项目开发团队协作重要性_Java1班项目实战 | 团队协作,我们是认真的!

    近日,传智专修学院软件工程系Java1班举行项目实战答辩会.传智专修学院院长冯威出席了本次答辩会.项目实战课程一直是传智专修学院特色专业教学的重要组成部分,也是提升学生实践能力的重要方式. 据悉,本次 ...

  2. git的团队协作开发

    title: git的团队协作开发 date: 2018-04-24 14:00:03 tags: [git] --- 项目负责人创建组织架构 在控制面板中点击组织按钮,添加组织,在这里可以把组织理解 ...

  3. 如何使用Git进行团队协作开发

    点击上方蓝色"飞雪无情"关注我,设个星标,第一时间看文章 在团队协作开发中,Git已经越来越流行,如果你不懂Git,那么就很难参与到团队的协作开发中. 除了公司内部的协作开发,如果 ...

  4. 团队协作开发工具Git超详细讲解(工作必会)

    目录 一.Git常用命令 二.Git分支操作 1.什么是分支? 2.关于分支的操作 三.Git团队协作机制 四.GitHub操作 五.IDEA集成Git 六.IDEA集成GitHub 七.国内代码托管 ...

  5. 都2021年了,还不会使用GitHub创建、推送、拉取、克隆远程库、团队协作开发?

    1 对自己的远程库操作 1.1 在GitHub上创建远程库 1.2 推送本地库至远程库 1.3 拉取远程库到本地库 1.4 克隆远程仓库到本地 2 对别人的远程库两种操作方式 2.1 使用GitHub ...

  6. 团队开发-CodePlex的工作模式和团队协作开发

    CodePlex的工作模式和团队协作开发 在CodePlex上合作开发开源项目,实际上就是一个协同开发的过程. 在CodePlex建立了一个Project后,在TFS(Team Foundation ...

  7. idea整合gitte团队协作开发项目

    目录 1.相同步骤 1.1下载gitte 1.2.安装gitte 1.3注册一个gitte账号 2.不同步骤 2.1项目发起者 2.1.1新建远程仓库 2.1.2新建项目文件 2.1.3idea新建项 ...

  8. 如何在github上创建组织并对组织进行管理和团队协作开发项目

    日期: 2016-7-25 内容: 尊重原创: 本文转载至: http://www.cnblogs.com/haore147/p/4219673.html 2015-01-12 20:32 by 慧可 ...

  9. 一小时精通SVN版本控制 之五 团队协作开发

    假设一个团队有一个项目经理,两个开发人员协作开发一个项目: 第一步:由项目经理创建项目 1.在服务端新建仓库用于存放项目. 2.在myeclipse中创建项目:选中项目右键->team-> ...

  10. 关于团队协作开发的一些思考

    俗话说得好:兵熊熊一个,将熊熊一窝. 一个好的团队领导,以及好的管理方式会让团队协作事半功倍,说一下我个人的思考. 存在问题 从学校到工作,还有一些外包项目的过程中,感觉存在一些普遍问题: 阶段任务不 ...

最新文章

  1. Python基础14-迭代器与生成器
  2. java jni调用dll文件_Java通过jni调用动态链接库
  3. select,table,form
  4. VC++文件编程操作实例
  5. Bitcoin 地址原理(1)Base58编码
  6. data spring 指定时区_SpringBoot 统一时区的方案
  7. 基于蒙特卡罗模拟的金融风险评估-函数调用关系图
  8. AFNetworking 3.0源码阅读 - AFURLResponseSerialization
  9. 官宣!《花木兰》内地定档
  10. java钟使用dwr_DWR中各种java方法的调用
  11. pandas frame 删除一行_Pandas如何处理大规模数据?
  12. Lightroom Classic 教程,如何在 Lightroom 中减少夜间照片中的噪点?
  13. 修改Linux文件的读写权限
  14. VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上)
  15. java代码c3p0连接池配置,c3p0连接池acquireincrement属性配置详解
  16. 中国教育行业市场行情动态及投资潜力研究报告(2022-2028年)
  17. Verilog写一个对数计算模块Log2(x)
  18. Win10/11 移动C:\Users 目录
  19. Linux 下du命令详解及代码实现
  20. win11抢先版体验

热门文章

  1. 全角字符unicode码对应表
  2. 超简单实现的C语言关机恶搞小程序
  3. 数字电子技术基础(二):原码、反码、补码
  4. Visio 2013 Professional专业版密钥
  5. XcodeGhost作者声明:源于实验,无任何威胁
  6. Android抓包工具Fiddler的使用教程
  7. 计算机用三角函数时如何用弧度制,5.1.2弧度制教学设计
  8. DDS原理以及MATLAB实现
  9. 第七章 与Web集成——《跟我学Shiro》[张开涛]
  10. 超级安全!Python 合成多张图片到PDF格式