git-术语解析、研发流程

1、常见术语

1.1、基本术语

1.1.1、仓库

代码文件存储的位置,常见的有工作目录->缓存区->本地仓库->远程仓库。

1.1.2、版本

项目开发过程中,使用版本来记录文件在每个阶段的变化内容。

1.1.3、分支

保存文件的一种方式,而且分支之间实现了资源隔离。

1.2、动作术语

1.2.1、获取

从上级仓库位置获取文件到当前位置。

1.2.2、提交

将修改好的文件提交到上级仓库位置。

1.2.3、合并

将某个仓库位置的文件和本地位置的文件组合在一起。

1.2.4、冲突

合并的过程中,由于文件、语意方面的不一致,导致不能正常合并。

1.2.5、解决

对于冲突的场景,进行人为干预,最终达到正常合并的条件。

1.3、其它术语

1.3.1、hook

触发器,我们在做一件事情的时候,会自动触发已定义好的事件。

1.3.2、锁定

对仓库中文件进行安全保护的一种权限设置

2、分支解析

2.1、简介

在一个代码基础上创建分支的能力是版本控制系统最重要的特性。这个操作实在版本控制系统中对选定的代码内容创建一个副本,所以分支其实就实现了一种项目代码资源隔离的方式,保证我们在项目开发的过程
中,组员间之间工作互相不受干扰。分支的主要目的就是帮助项目并行开发。
由于项目开发过程中的代码资源隔离,那么我们就可以基于这种资源隔离的特点,实现项目的不同状态管理,这就出现了多种角色分支。
我们按照日常的使用频率和角色地位的不同,将其分为常用性分支和临时性分支。

2.2、分支流程图

2.3、常用性分支

2.3.1、主分支(master/trunk)

每个代码库有且仅有一个主分支。它是版本库初始化以后自动建立的,默认就是在主分支在进行开发。

2.3.2、开发分支(develop)

项目代码的日常开发所在的分支

2.4、临时性分支

2.4.1、功能分支(feature)

为了开发某种特定功能,从Develop分支上分出来的。临时开发完成后,要再并入Develop

2.4.2、预发布分支(release)

预发布分支,它是指发布正式版本之前(合并到Master分支之前),进行版本代码测试的临时性分支,测试通过后,就正式发布代码。代码发布完毕后,需要合并到develop和master分支上

2.4.3、修补bug分支(fixbug)

软件项目正式发布以后,难免会出现bug,就临时创建一个bug分支来进行功能修补,功能修补完毕后,在将最终代码合并到Master和相应的Develop。

2.5、分支使用

团队中使用分支的主要原因有以下几种:
   物理上:基于项目代码目录结构配置,即为了文件、组件、和子系统而分支。
   功能上:基于项目多功能配置,即为特性,逻辑修改、缺陷修复、功能递增。
   环境上:基于项目多运行环境,即为开发、测试、预发布、线上环境等。
   组织上:基于项目团队的工作量,即为活动/任务、子项目、角色、群组等。
   流程上:基于项目团队的工作行为,即为支持不同的规范、流程、状态等。
这些分类的分支并不互相排斥,只是在不同场景下我们未来创建分支的一种理由,方便我们的团队工作。

3、研发流程

3.1、研发流程

3.1.1、研发示意图

3.1.2、流程解析

1、从主版本库master中切到本地一个功能分支feature
   注意:必须在主分支持续集成状态为绿色时(代码无问题),拉取分支
2、基于新功能或bug修改本地功能分支代码
   注意:本地编写代码,按照自己的速度,保证质量
3、对2完成的代码进行本地功能测试
   注意:侧重于组件接口测试
4、验证无问题后,从主版本库中拉取没问题的最新代码,合并到本地功能分支上,并再次执行本地验证
   注意:
   因为本地开发过程中,master分支可能被别人提交过,所以我们提交代码时候不能和新master冲突
   本地测试时间一般不长,如果本地测试过程中,又有人提交新代码到master,必须重复4动作
5、将二次验证后的本地feature分支代码提交到代码主版本库master
   注意:一定要先本地测试成功,而且master分支跟刚才拉取的状态一致
6、代码提交者基于自己提交后的主分支代码触发的持续集成线上构建,直至其成功。
   注意:如果构建失败,必须做最高优先级任务对其进行修复

3.2、软件研发管理流程图

 

posted @ 2023-06-09 11:05  小粉优化大师  阅读(7)  评论(0编辑  收藏  举报