finishing-a-development-branchlisted
Install: claude install-skill xjxj71/ai-token-usage-statistics
# 完成开发分支
## 概述
通过提供清晰的选项并执行所选工作流来引导开发工作的收尾。
**核心原则:** 验证测试 → 展示选项 → 执行选择 → 清理。
**开始时宣布:** "我正在使用 finishing-a-development-branch 技能来完成这项工作。"
## 流程
### 步骤 1:验证测试
**在展示选项之前,验证测试通过:**
```bash
# 运行项目的测试套件
npm test / cargo test / pytest / go test ./...
```
**如果测试失败:**
```
测试失败(<N> 个失败)。必须先修复才能继续:
[显示失败信息]
在测试通过之前无法进行合并/PR。
```
停止。不要继续到步骤 2。
**如果测试通过:** 继续步骤 2。
### 步骤 2:确定基础分支
```bash
# 尝试常见的基础分支
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
```
或者询问:"这个分支是从 main 分出来的——对吗?"
### 步骤 3:展示选项
展示以下 4 个选项:
```
实现已完成。你想怎么做?
1. 在本地合并回 <base-branch>
2. 推送并创建 Pull Request
3. 保持分支现状(我稍后处理)
4. 丢弃这项工作
选哪个?
```
**不要添加解释** - 保持选项简洁。
### 步骤 4:执行选择
#### 选项 1:本地合并
```bash
# 切换到基础分支
git checkout <base-branch>
# 拉取最新代码
git pull
# 合并功能分支
git merge <feature-branch>
# 在合并结果上验证测试
<test command>
# 如果测试通过
git branch -d <feature-branch>
```
然后:清理工作树(步骤 5)
#### 选项 2:推送并创建 PR
```bash
# 推送分支
git push -u origin <feature-branch>
# 创建 PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## 摘要
<2-3 条变更要点>
## 测试计划
- [ ] <验证步骤>
EOF
)"
```
然后:清理工作树(步骤 5)
#### 选项 3:保持现状
报告:"保留分支 <name>。工作树保留在 <path>。"
**不要清理工作树。**
#### 选项 4:丢弃
**先确认:**
```
这将永久删除:
- 分支 <name>
- 所有提交:<commit-list>
- 工作树 <path>
输入 'discard' 确认。
```
等待精确的确认。
确认后:
```bash
git checkout <base-branch>
git branch -D <feature-branch>
```
然后:清理工作树(步骤 5)
### 步骤 5:清理工作树
**对于选项 1、2、4:**
检查是否在工作树中:
```bash
git worktree list | grep $(git branch --show-current)
```
如果是:
```bash
git workt