1、代码分支
Git有5个主要的分支,包括主分支(master)、开发分支(develop)、功能分支(feature)和发布分支(release)。这5个分支的组织结构和流程有助于团队协作,保证代码的质量和稳定性。同时,还可以通过合并分支的方式来进行代码审查、协调工作和跟踪项目进度。
- 主分支(master)是最主要的分支,用于保存项目的稳定版本。一般来说,主分支中的代码应该是经过测试、Bug修复并且可上线的版本。
- 开发分支(develop)是用于整合开发团队的代码的分支。在开发过程中,团队成员会从主分支(master)拉取代码到开发分支,执行开发任务并提交代码,然后将代码合并回开发分支。
- 功能分支(feature)用于开发新的功能或解决某个特定问题。每个功能都应该在一个单独的分支上进行开发,以保证代码的独立性和可追踪性。一般情况下,功能分支从开发分支派生,完成开发后再合并回开发分支。
- 发布分支(release)用于发布正式版本。在软件开发周期的某个阶段,开发团队会从开发分支创建一个发布分支,进行最后的 Bug 修复、文档整理等工作。一旦发布分支准备好,就可以合并回主分支和开发分支,并部署到生产环境中。
- 补丁分支(hotfix)补丁分支是从主分支分出来的分支,用于处理生产环境中的问题或紧急修复。当生产环境中出现严重错误或缺陷时,开发人员会创建一个补丁分支,修复错误后将其合并回主分支和开发分支,以确保修复的内容被应用到下一个发布版本中。
2、提交记录说明
使用特殊关键词,表明此次的提交内容的类型,方便版本回滚或者追踪提交记录。
2.1 记录格式:
<类型>(<范围>): <简要描述>
[可选的详细描述]
2.2 记录类型 (Type)
用于标识提交的目的或类别
- feat:新增功能(Feature)
- 示例:feat: 添加用户登录功能
- 解释:这次提交主要增加了新的功能或特性。
- fix:修复 bug
- 示例:fix: 修复用户登录时的密码验证问题
- 解释:这次提交主要用于修复已知的问题或错误。
- refactor:代码重构
- 示例:refactor: 优化用户模块的代码结构
- 解释:这次提交不增加新功能也不修复 bug,而是对现有代码进行优化或重构,提高代码质量和可维护性。
- docs:文档更新
- 示例:docs: 更新用户登录功能的文档
- 解释:这次提交主要涉及文档的更新或添加,如 README 文件、API 文档等。
- test:添加或更新测试用例
- 示例:test: 增加用户登录功能的单元测试
- 解释:这次提交主要涉及测试代码的添加或修改,确保功能的正确性和稳定性。
- chore:常规维护任务
- 示例:chore: 更新项目依赖
- 解释:这次提交涉及项目的常规维护任务,如更新依赖库、配置文件等。
- style:代码风格调整
- 示例:style: 调整代码缩进和格式
- 解释:这次提交主要涉及代码风格的调整,如缩进、空格、换行等,通常不会影响功能。
- perf:性能优化
- 示例:perf: 优化用户登录接口的响应时间
- 解释:这次提交主要目的是提升代码的性能,减少资源消耗或提高响应速度。
- ci:持续集成相关
- 示例:ci: 配置 Travis CI
- 解释:这次提交主要涉及持续集成(CI)相关的配置或脚本更新。
- build:构建系统相关
- 示例:build: 更新 Maven 配置
- 解释:这次提交主要涉及构建系统的配置或脚本更新,如 Maven、Gradle 等。
- ci/cd:持续集成/持续部署相关
- 示例:ci/cd: 配置 Jenkins 流水线
- 解释:这次提交主要涉及 CI/CD 相关的配置或脚本更新。
- revert:回滚提交
- 示例:revert: 回滚上一次的用户登录功能修改
- 解释:这次提交用于撤销之前的某次提交。
- security:安全相关
- 示例:security: 修复 SQL 注入漏洞
- 解释:这次提交主要用于修复安全相关的问题。
- i18n:国际化
- 示例:i18n: 添加多语言支持
- 解释:这次提交主要涉及国际化相关的修改,如添加多语言支持。
- l10n:本地化
- 示例:l10n: 更新中文翻译
- 解释:这次提交主要涉及本地化相关的修改,如更新特定语言的翻译。
- merge:合并分支
- 示例:merge: 合并 develop 分支到 master
- 解释:这次提交用于记录分支合并操作。
- hotfix:紧急修复
- 示例:hotfix: 紧急修复生产环境的登录问题
- 解释:这次提交用于紧急修复生产环境中的问题。
- dependencies:依赖管理
- 示例:dependencies: 升级 Spring Boot 版本
- 解释:这次提交主要涉及项目依赖的更新或管理。
注意:
提交文件时,尽可能单个功能进行提交,以防止后续版本回滚或者追踪提交记录,并且再提交记录的时候要描述清楚本次提交的记录内容!
2.3 范围 (Scope)
可选项,用来说明提交影响的模块或组件,如 core, api, ui, backend 等
2.4 简要描述 (Subject)
提交的简短说明,概括了本次提交所做的工作。
2.5 详细描述 (Body)
可选项,用来进一步解释提交的内容,阐明实现的细节、背景或原因。
2.6 脚注 (Footer)
可选项,用于处理事务号、Breaking Changes(破坏性更改)等信息。