---
name: gitops
when: 'Git操作, 提交, commit, 分支, merge, 回滚, git, 代码提交, 版本控制, 代码合并, 冲突解决'
scope:
  - backend
  - frontend
products:
  - '*'
id: ka-pattern-gitops
asset_kind: pattern
lifecycle_status: active
authority: supporting
routes:
  - '*'
primary_triggers:
  - Git操作
  - 提交
  - commit
  - 分支
  - merge
  - 回滚
  - git
  - 代码提交
  - 版本控制
  - 代码合并
  - 冲突解决
priority: P2
specificity: 3
version: 1.0.0
last_reviewed: '2026-05-22'
consumes: []
emits: []
secondary_triggers: []
negative_triggers: []
type: pattern
status: active
---

## 决策规则
- Commit 消息必须语义化（feat/fix/refactor/test/docs/chore + 描述），禁止"update"、"fix"等笼统消息
- 每个 commit 对应一个最小变更单元
- 提交前检查清单：lint/format 通过、测试通过、无调试残留（console 输出、print、待办/修复占位标记）、无敏感信息、无超范围变更、无未跟踪大文件
- 功能分支合并必须使用 --no-ff 保留历史
- 冲突在功能分支解决，禁止在 master 上解决冲突
- 单 commit 问题用 git revert，整分支问题用 git revert -m 1
- 分支命名必须包含类型前缀（feature/、fix/、hotfix/、release/），禁止无意义命名
- Commit message 必须遵循 Conventional Commits 规范（type(scope): description）
- 禁止 force push 到 main/master/develop 分支，必须通过 PR/MR 合并
- 每个功能/修复必须从最新 develop/main 创建分支，禁止使用陈旧分支
- 代码合并必须经过至少一人 review 并批准，禁止自行合并
- 合并冲突必须在本地解决并测试，禁止在合并平台上直接解决

## 验收项
- [AC-01] Commit 消息语义化（type + description）
- [AC-02] 无调试代码残留
- [AC-03] 合并使用 --no-ff
- [AC-04] 回滚使用 revert 而非 reset
- [AC-05] 分支命名有类型前缀
- [AC-06] Commit message 符合 Conventional Commits
- [AC-07] 无 force push 到主分支
- [AC-08] 代码合并经过 review
