《Lunova Studio 代码提交守则· 2.0.6

一、总则

本守则旨在规范组织内代码提交流程,确保代码的质量、可维护性和团队协作效率,减少因代码提交不规范带来的问题,如代码冲突、功能异常等。所有参与代码开发的成员都应严格遵守本守则。

二、提交前准备

①代码审查

  1. 自我审查:在提交代码之前,必须对自己的代码进行全面审查,检查代码逻辑是否正确、是否符合编码规范、是否存在潜在的安全漏洞等。
  2. 功能测试:确保代码实现的功能能够正常运行,进行必要的单元测试、集成测试和功能测试,修复测试过程中发现的问题。
  3. 代码清理:移除不必要的代码、注释和调试信息,保持代码的简洁性和可读性。

②更新本地代码库

在提交代码前,务必从远程代码库拉取最新的代码,合并到本地分支,以避免提交时出现代码冲突。使用以下命令更新本地代码:

git pull origin <branch-name>

三、提交信息规范

①信息格式

提交信息应采用清晰、简洁的格式,一般遵循以下结构:

<类型>: <简短描述>

<详细描述>

②类型说明

  1. feat:新增功能。
  2. fix:修复 bug。
  3. docs:文档相关的修改,如注释、README 文件等。
  4. style:代码格式调整,不影响代码逻辑,如缩进、空格等。
  5. refactor:代码重构,既不是新增功能也不是修复 bug。
  6. test:添加或修改测试代码。
  7. chore:构建过程或辅助工具的修改,如配置文件、脚本等。

③简短描述

  • 用一句话简要描述本次提交的主要内容,不超过 50 个字符。
  • 首字母大写,不使用句号结尾。

④详细描述

  • 详细说明本次提交的背景、目的和具体修改内容。
  • 如果是修复 bug,应说明 bug 的表现、复现步骤和解决方案;如果是新增功能,应说明功能的具体实现和使用方法。
  • 详细描述部分可以换行,每行不超过 72 个字符。

⑤示例

feat: 添加用户注册功能

本次提交新增了用户注册功能,包括注册页面的前端界面和后端接口。用户可以通过输入用户名、密码和邮箱进行注册,注册信息将存储在数据库中。

四、提交频率和粒度

①提交频率

  • 保持适当的提交频率,避免长时间不提交或频繁提交无意义的更改。
  • 完成一个相对独立的功能模块或修复一个 bug 后,及时进行提交。

②提交粒度

  • 每次提交应尽量保持单一职责,只包含一个主要的修改内容。避免将多个不相关的修改合并到一次提交中。
  • 如果一次提交涉及多个功能或修改,可以将其拆分成多个独立的提交,每个提交专注于一个特定的任务。

五、分支管理

①分支使用规范

  1. 主分支(master 或 main):主分支是稳定的代码版本,仅用于发布正式版本。禁止直接在主分支上进行开发,所有代码必须经过测试和审查后,通过合并请求(Merge Request)的方式合并到主分支。
  2. 开发分支(develop):开发分支是开发团队的主要工作分支,用于集成各个功能分支的代码。开发者应从开发分支创建自己的功能分支进行开发。
  3. 功能分支(feature/*):用于开发新的功能模块。命名规则为 feature/<功能名称>,例如 feature/user-registration。功能开发完成后,将功能分支合并到开发分支。
  4. 修复分支(hotfix/*):用于紧急修复线上 bug。命名规则为 hotfix/<bug 编号>,例如 hotfix/123。修复完成后,将修复分支同时合并到主分支和开发分支。
  5. 发布分支(release/*):用于准备正式发布版本。命名规则为 release/<版本号>,例如 release/1.0.0。在发布分支上进行最后的测试和修复,确认无误后合并到主分支和开发分支。

②分支合并

  1. 在合并分支之前,确保本地分支是最新的,并且通过了所有的测试。
  2. 使用合并请求(Merge Request)的方式进行分支合并,详细描述合并的内容和目的。
  3. 合并请求必须经过至少一名其他开发者的审查和批准后才能合并。

六、错误处理和回滚

①错误处理

如果提交的代码导致了系统故障或其他严重问题,开发者应立即停止相关操作,并通知团队成员。尽快定位问题的原因,制定解决方案并进行修复。

②回滚操作

如果问题无法及时修复,可以考虑进行代码回滚操作。使用以下命令回滚到上一个提交版本:

git revert <commit-hash>

其中 <commit-hash> 是需要回滚的提交的哈希值。回滚操作完成后,及时通知团队成员。

七、违规处理

对于违反本守则的行为,将根据情节轻重进行相应的处理,包括但不限于口头警告、书面警告、限制代码提交权限等。同时,鼓励团队成员相互监督,共同维护良好的代码提交规范。

八、附则

本守则自发布之日起生效,如有需要,将根据实际情况进行修订和完善。所有团队成员应密切关注守则的更新,并严格遵守。