# 版本发布与回滚操作文档

## 流程概览

```
开发新版本 → 创建版本分支 → 推送到远程 → 合并到 main → 推送 main 触发滚动发布
```

## 操作步骤

### 1. 切换到 main 分支，拉取最新代码

```bash
git checkout main
git pull origin main
```

### 2. 创建版本分支

```bash
# 命名规范：release/vX.Y.Z
git checkout -b release/v2.0.0
```

### 3. 在版本分支上开发、提交

```bash
git add <files>
git commit -m "feat: 新功能描述"
```

### 4. 推送版本分支到远程

```bash
git push origin release/v2.0.0
```

### 5. 合并到 main

```bash
git checkout main
git pull origin main
git merge release/v2.0.0
```

### 6. 推送 main，触发 CI/CD 滚动发布

```bash
git push origin main
```

CI/CD 会自动构建 Docker 镜像并部署到 K8s 集群。

## 版本回滚

如果新版本上线后出现问题，回滚到上一个稳定版本：

### 方式一：代码回滚（推荐）

```bash
git checkout main
git revert --no-commit HEAD..release/v1.0.0
git commit -m "revert: 回滚到 v1.0.0"
git push origin main
```

> revert 会生成新提交，不会丢失任何历史代码，新版本随时可以恢复。

### 方式二：K8s 快速回滚（最快）

```bash
# 回滚到上一个部署版本
kubectl rollout undo deployment/<deployment-name> -n <namespace>

# 或指定具体版本
kubectl rollout undo deployment/<deployment-name> --to-revision=<N> -n <namespace>
```

## 分支命名规范

| 类型 | 命名格式 | 示例 |
|------|---------|------|
| 主分支 | `main` | `main` |
| 版本分支 | `release/vX.Y.Z` | `release/v1.0.0` |
| 功能分支 | `feature/功能名` | `feature/user-auth` |
| 修复分支 | `hotfix/vX.Y.Z` | `hotfix/v1.0.1` |

## 当前版本分支

| 分支 | 状态 | 说明 |
|------|------|------|
| `v1.0.0` | 稳定 | 首个正式版本 |
