---
description: Git 提交和分支管理规范。涉及 commit、分支、合并、版本控制时触发。
---

# Git 规范

该规则定义 Git 提交与分支管理标准，核心原则：单一职责、清晰命名、规范流程。

---

## 必须遵守

- ✅ 提交信息使用规范格式：`<type>(<scope>): <subject>`
- ✅ Subject 简洁明了，不超过 50 字符
- ✅ 每次提交只做一件事（单一职责）
- ✅ 提交前必须自测通过
- ✅ 提交前必须解决所有 linter 错误
- ✅ 功能开发必须在独立分支进行
- ✅ 分支命名遵循规范：`<type>/<描述>`
- ✅ 合并前必须解决所有冲突
- ✅ 重要功能合并必须经过 Code Review

---

## 严格禁止

- ❌ 无意义的提交信息（"update"、"fix"、"test"）
- ❌ 提交包含密码、密钥、Token 的代码
- ❌ 提交 node_modules、dist 等构建产物
- ❌ 提交个人配置文件
- ❌ 提交有语法错误的代码
- ❌ 提交包含 console.log 调试代码
- ❌ 提交注释掉的大段代码
- ❌ 在 main/master 分支直接提交
- ❌ 使用 --force 强制推送（除特殊情况）

---

## 最佳实践

- 💡 功能未完成使用 git stash
- 💡 完成开发后及时删除已合并分支
- 💡 交互式 rebase 整理提交历史（仅推送前）
- 💡 使用 cherry-pick 选择性合并

---

## 代码示例

### Commit Type

| Type       | 说明                   |
| ---------- | ---------------------- |
| `feat`     | 新功能                 |
| `fix`      | Bug 修复               |
| `docs`     | 文档更新               |
| `style`    | 代码格式（不影响功能） |
| `refactor` | 代码重构               |
| `perf`     | 性能优化               |
| `test`     | 测试相关               |
| `chore`    | 构建、工具、依赖更新   |

### Commit 示例

```bash
# 新功能
feat(user): 添加用户头像上传功能

# Bug 修复（关联 Issue）
fix(order): 修复订单列表分页错误

Fixes #456

# 重构
refactor(api): 重构 API 封装层
```

### 分支命名

```bash
# ✅ 清晰
feature/user-avatar-upload
bugfix/order-pagination-error
hotfix/payment-crash
release/v1.2.0

# ❌ 不清晰
feature/new
fix/bug
update
```

### 工作流程

```bash
# 1. 更新主分支
git checkout main && git pull origin main

# 2. 创建功能分支
git checkout -b feature/user-avatar-upload

# 3. 开发并提交
git add . && git commit -m "feat(user): 添加用户头像上传功能"

# 4. 推送并创建 PR/MR
git push origin feature/user-avatar-upload

# 5. 合并后删除分支
git checkout main && git branch -d feature/user-avatar-upload
```

### 回滚操作

```bash
# 撤销提交（保留更改）
git reset --soft HEAD~1

# 撤销提交（丢弃更改）
git reset --hard HEAD~1

# 创建回滚提交（推荐用于已推送的提交）
git revert HEAD
```

### .gitignore

```gitignore
node_modules/
dist/
build/
.DS_Store
.idea/
.vscode/
.env
.env.local
*.log
coverage/
```
