跳转到内容

完成开发分支 (finishing-a-development-branch)

完成开发分支(finishing-a-development-branch)

Section titled “完成开发分支(finishing-a-development-branch)”

finishing-a-development-branch 是通过提供清晰选项并执行选定工作流来指导完成开发工作的 Skill。

核心原则:

验证测试 → 提供选项 → 执行选择 → 清理。

在提供选项之前,验证测试通过:

Terminal window
# 运行项目测试套件
npm test / cargo test / pytest / go test ./...

如果测试失败:

测试失败 (<N> 个失败)。必须在完成前修复:
[显示失败]
在测试通过前无法继续合并/PR。

停下来。不要进入步骤 2。

如果测试通过:继续步骤 2。

Terminal window
# 尝试常见基础分支
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null

或询问:“这个分支从 main 分出 —— 正确吗?“

正好提供这 4 个选项:

实现完成。你想怎么做?
1. 在本地合并回 <base-branch>
2. 推送并创建 Pull Request
3. 保持分支原样(我稍后处理)
4. 放弃这项工作
哪个选项?

不要添加解释 —— 保持选项简洁。

Terminal window
# 切换到基础分支
git checkout <base-branch>
# 拉取最新
git pull
# 合并功能分支
git merge <feature-branch>
# 验证合并后的测试
<test command>
# 如果测试通过
git branch -d <feature-branch>

然后:清理 worktree(步骤 5)

Terminal window
# 推送分支
git push -u origin <feature-branch>
# 创建 PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## 总结
<2-3 行关于改了什么>
## 测试计划
- [ ] <验证步骤>
EOF
)"

然后:清理 worktree(步骤 5)

报告:“保持分支 <name>。Worktree 保留在 <path>。”

不要清理 worktree。

先确认:

这将永久删除:
- 分支 `<name>`
- 所有提交:<commit-list>
- Worktree 在 `<path>`
输入 'discard' 确认。

等待确切确认。

如果确认:

Terminal window
git checkout <base-branch>
git branch -D <feature-branch>

然后:清理 worktree(步骤 5)

对于选项 1、2、4:

检查是否在 worktree 中:

Terminal window
git worktree list | grep $(git branch --show-current)

如果是:

Terminal window
git worktree remove <worktree-path>

对于选项 3: 保留 worktree。

错误问题修复
跳过测试验证合并坏代码,创建失败 PR始终在提供选项前验证测试
开放式问题”接下来做什么?” → 模糊提供正好 4 个结构化选项
自动清理 worktree删除可能需要的 worktree(选项 2、3)只为选项 1 和 4 清理
放弃不确认意外删除工作要求输入 ‘discard’ 确认

何时使用

  • 实现完成
  • 所有测试通过
  • 需要决定如何集成工作

关键要点

  • 先验证测试
  • 提供正好 4 个选项
  • 选项 4 需要输入确认
  • 为选项 1 和 4 清理 worktree

4 个选项

  1. 本地合并
  2. 推送并创建 PR
  3. 保持原样
  4. 放弃

禁止

  • 测试失败时继续
  • 不验证结果就合并
  • 不确认就删除
  • 前置subagent-driven-developmentexecuting-plans(任务完成后)。
  • 互补using-git-worktrees(清理该 skill 创建的 worktree)。

查看源文件: GitHub原始文件