?一、目的
本规范旨在建立一套科学、高效、规范的软件源码版本管理体系,确保软件源码的完整性、可追溯性和协同开发的顺畅进行,提高软件开发效率和质量,降低维护成本。
二、适用范围
适用于公司内部所有软件项目的源码版本管理。
三、术语和定义
1.版本号:用于标识软件源码的不同版本,采用语义化版本号规则,格式为MAJOR.MINOR.PATCH。
-MAJOR:主版本号,当软件架构发生重大变化,如功能模块的增减、整体架构的调整等,主版本号递增。
-MINOR:次版本号,当软件功能有较大扩展或改进,但不影响整体架构,次版本号递增。
-PATCH:修订版本号,当软件修复了一些缺陷,不影响功能和架构,修订版本号递增。
2.分支:从主开发线派生出来的独立开发线路,用于特定的开发任务或维护需求,如功能开发分支、修复bug分支、发布分支等。
3.标签(Tag):用于标记软件源码的某个特定版本,通常在发布版本时创建,便于追溯和管理。
四、版本管理工具
选用Git作为软件源码版本管理工具,其具有分布式、高效、灵活等优点,能够很好地支持团队协作开发。
五、版本管理流程
(一)项目初始化
1.创建项目仓库
在公司的代码托管平台上创建软件项目对应的Git仓库,仓库名称应简洁明了,与项目名称一致。
2.初始化仓库结构
-在本地创建项目目录,并进入该目录执行`gitinit`初始化本地仓库。
-根据项目需求创建必要的目录结构,如`src`(源码目录)、`test`(测试目录)、`docs`(文档目录)等。
-将初始化的目录结构添加到本地仓库,执行`gitadd.`和`gitmit-mInitialprojectstructure`。
3.设置仓库属性
-在本地仓库执行`gitremoteaddorigin[远程仓库地址]`,将本地仓库与远程仓库关联。
-根据项目需要设置仓库的权限,确保团队成员具有相应的读写权限。
(二)开发流程
1.分支管理
-主开发分支(master):
-是项目的核心分支,始终保持稳定可发布的状态。
-只有在经过充分测试和验证后,才能将其他分支合并到主开发分支。
-功能开发分支:
-从主开发分支派生出来,命名规则为`feature/[功能名称]`,例如`feature/user-login`。
-开发人员在各自的功能开发分支上进行功能开发,每个功能尽量独立开发,避免相互干扰。
-功能开发完成后,进行自测,确保功能正常后,将功能开发分支合并到主开发分支。
-修复bug分支:
-从主开发分支派生出来,命名规则为`bugfix/[问题编号]`,例如`bugfix/123`。
-开发人员在修复bug分支上进行问题修复,修复完成后进行测试,确认问题解决后,将修复bug分支合并到主开发分支。
-预发布分支(release):
-从主开发分支派生出来,命名规则为`release/[版本号]`,例如`release/1.0.0`。
-在预发布分支上进行发布前的准备工作,如集成测试、版本说明更新等。
-预发布完成后,将预发布分支合并到主开发分支,并创建对应的发布标签。
2.日常开发
-开发人员每天从主开发分支拉取最新代码到本地开发环境,执行`gitpulloriginmaster`。
-在本地的功能开发分支或修复bug分支上进行代码开发,遵循代码规范进行编码。
-开发过程中,定期提交代码,每次提交应包含有意义的提交说明,描述本次提交的主要内容和目的。提交说明应遵循以下规范:
-采用祈使句开头,如Add,Modify,Fix等。
-简要描述本次提交的内容,避免过于冗长和模糊。
-例如:Adduserloginfunction,Modifypasswordencryptionalgorithm,Fixloginbuttondisplayissue。
-当完成一个功能模块或修复一个问题后,及时将本地分支的代码推送到远程仓库,执行`gitpushorigi