目前所在公司开发的系统为一个基础版本(通用版)包含了行业内一些基础功能实现,后期根据不同厂家进行定制版的开发,考虑独立项目的话代码维护不太方便,并且如果通用版本有变动的话,其他定制版本也都需要进行变动。

gitflow工作流

公司之前采用svn进行维护代码,最近才开始进行转变到用git 进行维护,在学习的过程中对比了一番最终选择采用gitflow工作流进行管控, 具体介绍如下:

master分支:主分支,可随时交付给用户使用的版本

dev分支:开发分支,项目组内用于开发的分支,并且保证该分支代码是可运行

feature分支:功能分支,项目中开发新需求或者修改bug都在此分支上进行。

release分支:测试分支,开发完成之后,基于dev创建该分支

hotfix分支:bug修复分支,用于修复bug,发现bug创建此分支进行修复,基于release或者master分支创建

由于现在处于开发阶段故现在对分支的维护方面没有那么完善,而且公司内部没有测试人员,现在的测试流程都是写完代码内部自己进行测试,现在进行开发的时候一般都是基于dev分支创建feature分支:

创建feature分支以及合并方案

  • 当前处于dev分支或者release分支,基于dev或者release创建新分支

  • 创建新功能分支并且切换到该分支,当该功能开发完毕之后,如果该功能开发周期较长,每天从dev分支合并到功能分支上,避免跟dev分支差异较大

  • 当功能开发完成合并到dev或者release分支当中,完成之后删除本地分支,避免本地分支过多,分不清功能是否合并。

创建release分支以及合并方案

  • 当前处于dev分支当中,基于dev分支创建release分支
  • 创建该分支之后,进行打包发布测试,如果测试当中发现bug,创建hotfix分支,进行修复bug,创建hotfix分支主要想的是多人开发过程中,发现那个模块谁负责,谁去修改bug
  • 当该分支测试完成之后合并到master和dev分支当中

创建hotfix分支以及合并方案

  • 当前处于release分支或者master分支当中
  • 当release分支发现bug之后,根据release分支创建该分支,进行修复bug。
  • 该分支修改完成之后如果是release的bug合并到release分支就可,如果是基于master分支创建的还需要合并到dev分支当中

命名规则

   分支命名方式采用如下规则例如: add_user_0302add:代表工作类型user代表具体功能模块:user:具体的功能模块0302:分支创建时间
复制代码

git注释提交规范

    注释提交采用如下规则例如:[修复bug]:bug号1.修复的具体功能
复制代码

基于上述规范根据我们项目组的情况,创建了如下三个版本的分支结构如下:

  • master分支
  • master-A分支
  • master-B分支

master分支

基础版本分支,开发一些通用功能(目前所有工作都是在此版本开发)

master-A分支

基于通用版本生成的一个分支版本,根据A客户提出的新需求进行客制化的开发

master-B分支

基于通用版本生成的分支版本,根据B客户提出的新需求进行客制化开发

master分支维护

    master版本维护分如以下:devrelease/hotfix/feature/
复制代码

master-A/master-B维护

    master-A或者master-B版本维护分支如下:dev-Arelease-A/hotfix-A/feature-A/
复制代码

基础版本同步方案

当基础版本有新功能开发,或者是修复之前遗留的bug,开发完成之后,合并到其他master-A或者master-B分支当中,避免重复开发带来的时间成本。

开发注意事项

根据不同的业务创建分支的时候选择创建不同的分支,例如master分支在进行创建功能分支的时候应该是:

  • feature/add_user_0302

master-A创建功能分支应该是:

  • feature-A/add_user_0302

注:此方案目前只是一个规划,如果您有更好的方案还请留言告知

转载于:https://juejin.im/post/5c79cfa5e51d4506e27fe61f

git项目根据不同需求进行独立开发相关推荐

  1. 6个经典Python项目让你快速具备独立开发能力

    最近打算录制一套视频,这个课程大约需要学习四周的时间,方便大家学习. 让你快速具备独立开发能力的6个经典Python项目如下: 一 600行代码项目 项目一:简单计算器 实现Python命令行操作的计 ...

  2. 独立开发变现周刊(第41期):一个开源项目一个人每月收入8万美金

    分享独立开发.产品变现相关内容,每周五发布. 目录 1.Budibase: 开源的低代码平台 2.沃尔玛通过SEO每月获得2.5亿流量的秘密 3.DesignJoy: 一个人的设计团队,月收入9万美金 ...

  3. 挑战独立开发项目能力___ITlanbao

    2019独角兽企业重金招聘Python工程师标准>>> 做了5年的android开发,今天没事写写刚入行不久的时候第一次独立开发项目的心得体会,     当时我刚工作8个月,由于公司 ...

  4. 微信小程序开发工具 将已存在的Git项目在新开发者下拉取推送

    微信小程序开发工具 将已存在的Git项目在新开发者下拉取推送 前言 流程 完事 前言 最近有同事离职了,交接了一个微信小程序的项目下来,源码放在了公司内部的GIT上面,当我下载下来维护之后发现,在微信 ...

  5. 独立开发变现周刊(第43期):业余项目成功的秘密

    分享独立开发.产品变现相关内容,每周五发布. 目录 1.Threadstart: 推文编写和定时发布工具 2.Bardeen:自动化浏览器插件,取代你的重复繁琐操作 3.Podia: 对用户的极度专注 ...

  6. 如何管理软件开发项目中,需求频繁的变更。

    在开发项目过程中,用户随时会提出一些新的需求,要求开发人员解决,这些需求的提出,有时在开发阶段中有时在开发阶段后.这种在需求分析的两个相邻子阶段中,或者在迭代周期的需求分析中,后一段或周期的需求分析结 ...

  7. [小白的Web全栈之旅]独立开发电子商务网站--项目创建+数据库开发

    哈喽大家好,今天博主要讲解的是独立开发电子商务网站的第五篇--项目创建+数据库开发,想要预览整个系列博客的参考目录请点击这里 在本博客,博主会讲解: 项目创建 PHP连接MySQL 创建数据表 数据的 ...

  8. [小白的Web全栈之旅]独立开发电子商务网站--项目介绍

    Web开发,是一个看似简单,实际复杂的工程,需要包括但不限于设计师.前端开发.后端开发的程序员们来开发,而Web全栈开发,是一种carry全场,具备页面设计,前端开发,后端开发等多个技能于一身的大神程 ...

  9. gitlab 拆分某项目的子项目到独立的git项目

    # 我们以 拆分 项目:project111 中的 子项目:JDBCPoolTool 为一个单独工程为例 # 进入当前项目路径 cd ./project111 # 新建本地分支 JDBCPoolToo ...

最新文章

  1. Linux服务器部署ssl证书教程,linux服务器在wdcp面板安装ssl证书教程
  2. java 数组越界异常_数组越界异常 求解决!!!
  3. 编程语言python入门要电脑什么配置能带动-对于几乎是零基础的人,直接学 Python 编程合适吗?...
  4. CentOS Git服务安装
  5. Android通过Scheme协议打开APP界面
  6. netty系列之:在netty中处理CORS
  7. 扎心!8.5亿网民 超七成月收入5000元以下,网友:这数据很真实
  8. 围绕HugeTLB的极致优化
  9. VScode快捷键(持续更新)
  10. 麦克风增强软件_麦克风电流声去除方法(不花一分钱去电流声)
  11. React进行服务器端数据请求---fetch
  12. 团队文化中的害群之马
  13. 【数据结构笔记】哈夫曼树的构造算法
  14. JAVA爬虫系列教程
  15. Windows下主机名和IP映射设置
  16. 巧用 Redis Hyperloglog,轻松统计 UV 数据
  17. 硬件基础知识(电阻)
  18. 求生之路2右下角显示服务器,求生之路2公网联机工具右下角刷不出服务器
  19. mel编程相较于c语言怎么样,MEL语言
  20. Python之turtle库的学习与使用——画图

热门文章

  1. HashMap 与 ConcurrentHashMap
  2. Swift - 触摸事件(点击,移动,抬起等)说明及用例
  3. HDU 2242 考研路茫茫——空调教室
  4. 我的服装DRP之开发感悟
  5. 抓取AJAX网页的方法-Firefox组件,C#集成
  6. Springmvc跨服务器文件上传报403,409错误
  7. ssh登陆慢/xhell访问主机慢
  8. python可视化报表制作教程_如何使用Python快速制作可视化报表
  9. android标题栏的属性,android – 属性“titleTextStyle”已经定义?
  10. 一周内自动登录php,利用php实现一周之内自动登录存储机制(cookie、session、localStorage)...