【git】git管理规范--分支命名规范、CommitMessage规范
文章目录
- 分支命名规范
- 1. 主分支(main/master)
- 2. 开发分支(develop)
- 3. 功能分支(feat)
- 4. 修复分支(fix)
- 5. 发布分支(release)
- 6. 热修复分支(hotfix)
- 7. 支持分支(support)
- 分支命名最佳实践
- Git Commit Message规范
- type
- Scope
- Subject
- body
- Footer
- 示例
分支命名规范
1. 主分支(main/master)
- 名称:main或master。
- 用途:用于存放稳定的、可发布的代码。
- 规则:只有一个主分支、不允许直接在主分支上提交代码,只能通过合并其他分支来更新。
2. 开发分支(develop)
- 名称:develop。
- 用途:用于集成开发中的功能分支。
- 规则:从 main 分支创建、功能开发完成后,合并到 develop 分支。
3. 功能分支(feat)
功能分支(Feature)
- 名称:
feature/<feature-name>
或feat/<feature-name>
。 - 用途:用于开发新功能。
- 规则:从 develop 分支创建、功能开发完成后,合并回 develop 分支。
- 示例:
feature/user-authentication
、feat/add-payment-gateway
。
4. 修复分支(fix)
- 名称:bugfix/ 或 fix/。
- 用途:用于修复 bug。
- 规则:从develop分支创建、修复完成后,合并回 develop 分支。
- 示例:
bugfix/login-error
、fix/null-pointer-exception
。
5. 发布分支(release)
- 名称:release/。
- 用途:用于准备发布新版本。
- 规则:从 develop 分支创建、发布完成后,合并到 main 和 develop 分支。
- 示例:
release/v1.0.0
、release/2023-10-01
。
6. 热修复分支(hotfix)
- 名称:hotfix/。
- 用途:用于紧急修复生产环境中的 bug。
- 规则:从 main 分支创建、修复完成后,合并到 main 和 develop 分支。
- 示例:
hotfix/critical-security-issue
、hotfix/login-page-crash
。
7. 支持分支(support)
- 名称:support/。
- 用途:用于维护旧版本。
- 规则:从 main 分支创建。
- 示例: support/v1.0.x。
分支命名最佳实践
- 使用小写字母和连字符:避免使用空格或特殊字符。
正确:feature/user-authentication
错误:feature/User Authentication - 包含上下文信息:在分支名称中明确用途和上下文。
示例:fix/api-rate-limit - 关联 Issue 或任务编号:在分支名称中包含 Issue 编号或任务编号。
示例:feature/PROJ-123-add-search - 避免过长的名称:保持简洁,同时确保信息完整。
示例:feat/add-payment-gateway 而不是 feat/add-payment-gateway-integration-with-stripe
更多示例分支命名:
- 功能开发
feature/user-profile
feat/add-search-functionality - Bug 修复
bugfix/login-error
fix/api-timeout-issue - 发布准备
release/v1.2.0
release/2023-10-01 - 热修复
hotfix/critical-security-issue
hotfix/payment-gateway-crash - 支持旧版本
support/v1.0.x
support/legacy-api
Git Commit Message规范
格式:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
type
推荐的type类型如下:
- feat: 新增功能
- fix: 修复bug
- docs: 仅文档更改
- style: 不影响代码含义的更改(空白、格式设置、缺失 分号等)
- refactor: 代码重构(既不修复 bug 也不新增功能)
- perf: 改进性能的代码更改
- test: 添加缺少的测试或更正现有测试
- chore: 对构建过程或辅助工具和库(如文档)的更改
- ci:自动化流程配置修改
- revert:回滚到上一个版本
Scope
Scope(范围):说明提交的影响范围(可选)。例如:
- feat(login):登录功能的新增。
- fix(api):API 模块的修复。
Subject
Subject(主题):简洁描述提交的目的,不超过 50 个字符。
body
Body 部分
- 详细描述提交的内容和背景。
- 说明为什么需要这次提交,以及如何实现的。
- 每行不超过 72 个字符。
Footer
Footer 部分
- 用于关联 Issue、Breaking Changes 等。
- 格式:
- 关联 Issue:Closes #123 或 Fixes #123。
- Breaking Changes:BREAKING CHANGE: <描述>。
示例
示例 1:新增功能
feat(login): add OAuth2 support
- Implement OAuth2 login flow
- Add support for Google and GitHub providers
- Update user authentication logic
Closes #45
示例 2:修复 bug
fix(api): resolve null pointer exception
- Add null check for user input
- Update error handling logic
Fixes #123
示例 3:文档更新
docs(readme): update installation instructions
- Add steps for setting up OAuth2
- Fix broken links
示例 4:代码重构
refactor(auth): simplify token validation logic
- Remove redundant checks
- Extract token validation into a separate function
示例 5:性能优化
perf(database): optimize query performance
- Add indexes to frequently queried columns
- Cache query results for 5 minutes