## [ERR-20260427-017] PR 合并后再 push 的 commit 会孤儿，必须开新 PR

**日期**: 2026-04-27
**类别**: Git 工作流 / PR 流程
**严重度**: 中（关键修复差点没合到 develop）

### 问题描述
PR #147 合并后我又往 `feature/adp-sync` push 了 2 个 commit：
- `7a335f79`: 关键 UAT bug fix（onModuleInit 注册任务）
- `721bf65a`: learning 文档

误以为这两个会自动随 PR #147 合到 develop，但实际：
- PR #147 在 `17:26:23` 合并，merge commit `61f00a04` 包含的最后一个改动是
  `01553f26`
- `7a335f79` push 时间是 `19:04:02`，**已经在 PR 合并之后**
- Gitea PR 合并后冻结快照，之后 push 到分支的 commit **不会自动跟随**

→ 这俩 commit 留在 `origin/feature/adp-sync` 上孤儿，develop 上没有。

### 验证方法
```bash
git branch -r --contains 7a335f79
# 输出只有 origin/feature/adp-sync，没有 origin/develop  ← 没合进去
```

### 修复
直接用同分支 head 重新开一个 PR：
```python
POST /api/v1/repos/FFAIWorkspace/workspace/pulls
  { "head": "feature/adp-sync", "base": "develop", ... }
```
Gitea 允许同分支重开 PR（只要前一个 PR 已 closed/merged）。

### 启示
- **PR 合并是时间点快照**：合并后再 push 的内容，不会跟着进 develop
- 任何"PR 合并后还有要交付的 commit"都必须开新 PR
- 同一分支可以连续开多个 PR，每次合并即冻结一波；但 git 工作流上更优雅的做法是
  每次 PR 合并后**删 feature 分支，创建新 feature 分支**（避免历史粘连）
- 工作流 checklist：
  - PR 创建 → 评审 → 合并 → **删本地 + 远端 feature 分支**
  - 后续修复 → 新建 `fix/xxx` 分支 → 新 PR
- 反例：在 long-lived feature 分支上多 PR 容易遗漏 commit（如本次差点漏掉关键 fix）

### 兜底
任何长期分支（如 feature/adp-sync 这种综合分支）合并后，立刻：
```bash
git rev-list --count origin/develop..origin/feature/<branch>
# 0 = 全部合进去；非 0 = 还有 commit 没合
```
养成 PR 合并后 grep 一遍的习惯。

---
