大厂的Git代码规范

分支命名

分支类型 说明
master 为主分支,也是用于部署生产环境的分支,需要确保稳定性。master分支稳定且只接受merge,任何时间都不能直接修改代码。一般release以及hotfix分支会合并到master分支。
develop 为开发环境分支,始终保持最新完成以及bug修复后的代码,用于前后端联调。一般开发的feature分支都是基于develop分支创建的。
feature 开发新功能时,以develop为基础创建feature分支。命名格式可以加上开发的功能模块,命名示例:feature/user_modulefeature/cart_module
test 为测试环境分支,外部用户无法访问,专门给测试人员使用,版本相对稳定。
release 为预上线分支(预发布分支),UAT测试阶段使用。一般由test或hotfix分支合并到release分支,直接在release分支上直接修改代码。
hotfix 线上出现紧急问题时,需要及时修复,以master分支为基础,创建hotfix分支。修复完成后,需要合并到master分支和develop分支。

分支与环境对应关系

分支 功能 环境 可访问
master 主分支,稳定版本 PRO
develop 开发分支,最新版本 DEV
feature 开发分支,实现新特性 -
test 测试分支,功能测试 FAT
release 预上线分支,发布新版本 UAT
hotfix 紧急修复分支,修复线上bug -

环境说明

  • DEV:用于开发者调试使用
  • FAT:功能验收测试环境,用于测试环境
  • UAT:用户验收测试环境,用于生产环境
  • PRO:生产环境

提交类型规范

类型 说明
feat 新增功能
fix 修复bug
docs 仅文档更改
style 不影响代码含义的更改(空白、格式设置、缺失分号等)
refactor 既不修复bug也不添加特性的代码更改
perf 改进性能的代码更改
test 添加缺少的测试或更正现有测试
chore 对构建过程或辅助工具和库(如文档)的更改

示例

以下是根据主流 Git 提交规范整理的提交类型及示例表格(Markdown 格式),综合了历史对话与搜索结果的核心规范:

类型 说明 示例
feat 新增功能 feat(user): 新增第三方登录支持
fix 修复 Bug fix(payment): 修复金额计算舍入错误
docs 文档更新 docs(README): 补充项目快速启动指南
style 代码格式调整(不影响逻辑) style(button): 统一组件缩进为 2 空格
refactor 代码重构(非功能/修复) refactor(api): 拆分用户验证中间件
perf 性能优化 perf(image): 实现图片懒加载策略
test 测试相关变更 test(login): 添加 OAuth2 异常流程测试
chore 构建/工具/依赖更新 chore(deps): 升级 webpack 至 v5.8.0
build 构建系统变更 build: 添加 Docker 多阶段构建配置
ci 持续集成配置变更 ci: 集成 SonarQube 静态代码分析
revert 回滚历史提交 revert: 撤销 feat: 实验性弹窗功能
hotfix 紧急修复(非标准但常用) hotfix(order): 修复库存超卖漏洞

1. feat(新增功能)

feat(payment): add credit card processing support

  • Integrate Stripe API for handling payments
  • Add new payment method selection UI
  • Implement error handling for failed transactions

Closes #123

2. fix(修复Bug)

fix(login): resolve authentication timeout issue

  • Increase session timeout to 30 minutes
  • Fix token refresh logic in AuthService
  • Add error logging for auth failures

Refs #456

3. docs(文档更新)

docs(README): update API usage examples

  • Add new endpoints to 'Getting Started' section
  • Include sample request/response for /users endpoint
  • Correct outdated configuration steps

4. style(代码样式调整)

style(header): reformat CSS according to style guide

  • Remove redundant vendor prefixes
  • Reorder properties alphabetically
  • Adjust indentation to 2 spaces

5. refactor(代码重构)

refactor(order): simplify discount calculation

  • Extract discount rules into separate helper class
  • Remove duplicated code in applyCoupon method
  • Optimize conditional checks for eligibility

6. perf(性能优化)

perf(image): reduce thumbnail file size

  • Implement WebP conversion for thumbnails
  • Set default quality to 80%
  • Add lazy loading to gallery component

7. test(测试相关)

test(user): add unit tests for profile update

  • Cover all scenarios for valid/invalid inputs
  • Mock external dependencies (API service)
  • Assert error messages on validation failure

8. chore(构建/工具更新)

chore(deps): upgrade React to v18.2.0

  • Update package.json and lockfile
  • Resolve breaking changes in useEffect API
  • Adjust test cases for new ReactDOM render

9. build(构建系统变更)

build: migrate to Webpack 5

  • Update configuration for module federation
  • Replace deprecated loaders with new equivalents
  • Optimize chunk splitting strategy

10. ci(持续集成)

ci: set up GitHub Actions for nightly builds

  • Add workflow file for Node.js tests
  • Configure cron schedule (0 0 * * *)
  • Notify Slack on build failure

11. revert(回滚提交)

revert: remove experimental feature due to instability

This reverts commit a1b2c3d4e5f6.

中文示例

1.feat(新增功能)

feat(支付模块):接入信用卡支付处理能力

  • 集成 Stripe 支付网关 API,完成交易创建、确认与 webhook 回调验证全流程;
  • 新增支付方式选择界面(含卡片类型图标识别、安全域 iframe 嵌入及 PCI-DSS 合规渲染);
  • 实现全链路异常处理机制:涵盖网络超时、卡拒付、3D Secure 认证失败、Stripe API 错误码映射(如 card_declined → 用户友好提示)。

✅关闭问题 #123(需求来源:支付合规审计整改项)

2.fix(缺陷修复)

fix(登录模块):解决身份认证会话超时异常中断问题

  • 将 JWT 会话有效期由 15 分钟提升至 30 分钟,并引入滑动过期策略(用户活跃即自动续期);
  • 重构 AuthService 中的 Token 刷新逻辑:分离刷新请求、本地存储更新、全局状态同步三阶段,消除竞态条件导致的 token 失效;
  • 在所有认证失败路径中注入结构化错误日志(含 traceId、userAgent、失败原因码),接入 ELK 日志平台实现根因快速定位。

📝 关联问题 #456(SRE 团队监控告警:每日 23:00 出现集中性 401 错误)

3. docs(文档更新)

docs(README):全面更新 API 使用示例与集成指南

  • 在「快速上手」章节新增 /v2/orders/batch/v2/webhooks/configure 等 5 个 v2 版本核心接口;
  • /users 接口补充完整交互范例:含 cURL 请求命令、标准 Header 设置(Authorization, X-Request-ID)、成功响应 JSON Schema 及常见错误响应体(400/403/429);
  • 修正旧版文档中已废弃的 JWT_SECRET 环境变量配置说明,替换为基于 HashiCorp Vault 的动态密钥轮转实践指引。

4.style(代码格式化)

style(页眉组件):依据前端样式规范重构 CSS 代码

  • 移除所有冗余浏览器前缀(-webkit-, -moz-),依赖 Autoprefixer 自动注入兼容性规则;
  • 按 CSS 属性字典序重排声明(align-itemsbackground-colordisplayfont-size…),提升团队代码可维护性;
  • 统一缩进为 2 个空格(禁用 Tab),并启用 Prettier + Stylelint 双校验流水线,确保 PR 合并前零格式违规。

5.refactor(代码重构)

refactor(订单模块):解耦并优化折扣计算引擎

  • 将分散在 OrderServiceCartControllerCheckoutPage 中的折扣规则(满减、阶梯价、会员等级系数)抽离为独立 DiscountEngine 类,支持策略模式动态加载;
  • 删除 applyCoupon() 方法中重复出现的 3 处 if (coupon.isValid()) {...} 校验逻辑,统一收口至装饰器 @ValidateCoupon
  • 替换嵌套 if-else 的资格判定为责任链模式(EligibilityCheckerChain),支持运行时热插拔新规则(如:疫情临时补贴政策)。

6. perf(性能优化)

perf(图片服务):系统性降低缩略图资源体积与加载延迟

  • 全量启用 WebP 格式转换(通过 Sharp 库),对 PNG/JPEG 源图生成多分辨率 WebP 输出(1x/2x/3x);
  • 设定默认压缩质量为 80%,经 PSNR 与 SSIM 测评,在视觉无损前提下平均体积缩减 57%;
  • 在画廊组件中集成原生 loading="lazy" 属性,并结合 IntersectionObserver 实现滚动预加载(提前加载视口下方 2 屏内容)。

7. test(测试增强)

test(用户模块):为个人资料更新功能补充高覆盖率单元测试

  • 覆盖全部输入边界场景:空字段、超长字符串(>256 字符)、非法邮箱格式、敏感词过滤、时区字段非法值;
  • 使用 Jest Mock 实现 UserService.updateProfile() 的外部依赖隔离:模拟 HTTP 客户端、数据库事务、第三方头像托管服务(Cloudinary);
  • 对验证失败场景进行断言强化:不仅检查返回状态码,更验证错误对象结构({ code: 'VALIDATION_ERROR', field: 'bio', message: 'Bio must be under 200 characters' })。

8. chore(构建/工程任务)

chore(依赖管理):升级 React 至 v18.2.0 版本

  • 同步更新 package.json 依赖树与 pnpm-lock.yaml,执行 pnpm audit --fix 修复 3 个中危漏洞;
  • 迁移 useEffect 中的废弃 useLayoutEffect 替代方案,修复 SSR 下 hydration mismatch 导致的首屏闪烁;
  • 重构 @testing-library/react 测试套件:将 render() 替换为 render(<App />, { wrapper: React.StrictMode }),适配并发渲染新特性。

9.build(构建系统升级)

build:整体迁移至 Webpack 5 构建体系

  • 重构 webpack.config.js:启用 Module Federation 架构,支持微前端子应用独立部署与跨域共享 React, Lodash 等基础包;
  • 替换已弃用的 file-loader/url-loader 为内置 asset 模块类型,简化资源配置;
  • 采用 splitChunks.optimization 精细化分包策略:按业务域拆分 vendor(第三方库)、shared(内部工具库)、async(路由懒加载 chunk),首屏 JS 加载量下降 42%。

10. ci(持续集成增强)

ci:在 GitHub Actions 中搭建夜间自动化构建与质量门禁

  • 新增 .github/workflows/nightly-build.yml:覆盖 Node.js 16/18/20 多版本测试、TypeScript 编译检查、E2E 端到端回归(Cypress);
  • 配置定时触发器 cron: "0 0 * * *"(UTC 时间每日 00:00),避开工作高峰时段保障 CI 资源;
  • 集成 Slack Webhook 通知:构建失败时推送带 commit hash、失败步骤截图、直跳 Jenkins 日志链接的富文本消息,平均故障响应时间缩短至 8 分钟内。

11.revert(紧急回滚)

revert:因稳定性风险下线实验性暗色主题切换功能

warning emoji 此次提交撤销了提交哈希 a1b2c3d4e5f6(2023-10-15 提交)中引入的 ThemeSwitcher 组件及其配套的 CSS-in-JS 主题上下文。 回滚依据:灰度发布期间发现 iOS Safari 15.6 下触发 WebKit 渲染管线死锁(Crash Log ID: WK-2023-8891),且无法在 48 小时内定位根本原因,优先保障主干稳定性。

单次提交注意事项

  1. 提交问题必须为同一类别
  2. 提交问题不要超过3个
  3. 提交前commit发现不符合规范,用git commit --amend -m "新的提交信息"git reset --hard HEAD重新提交一次
备案号: 湘ICP备2021015274号-3