GitHub Copilot 引入堆叠会话功能:开发者分享用 AI 逐步现代化旧项目
GitHub Copilot 应用新增堆叠会话(Stacked Sessions)功能,支持用户在同一个仓库中创建多个相互继承的任务,每个会话的更改可作为下一个会话的基础。开发者 Cassidy Williams 利用该功能将使用 React 15、Less 等十年旧依赖的个人项目成功现代化,通过分步拆解和多个 Pull Request 实现版本控制清晰,避免了单次大规模重构的混乱。
事件概述
GitHub Copilot 应用推出堆叠会话(Stacked Sessions)功能,允许开发者在同一仓库中创建一系列任务,每个会话基于上一个会话的成果继续开发。这些会话最终可分别生成独立的 Pull Request,从而实现对大型重构的分步控制。
核心过程
开发者 Cassidy Williams 分享了一个实际案例:她有一个个人仪表盘项目,最初使用 React 15(2016 年发布)、Less 和 react-bootstrap 编写,依赖已严重过时。此前她多次尝试重构未果,因为项目规模适中,手动更新需数周。
-
首次尝试:她启动 GitHub Copilot 应用,在 Plan 模式下输入提示,要求使用 Tailwind 或纯 CSS 替换 Less、清理样式、优化可访问性和响应式,同时升级依赖。AI 在 Claude Opus 4.8 和 GPT-5.5 的辅助下生成了计划,但她按计划执行后发现问题——她没有注意到自己之前已经在一个
dev分支上做过部分更新,新改动基于main分支导致断点。 -
使用堆叠会话:她认识到需要将冲突分支的更改合并到新工作中。于是她利用堆叠会话功能,将重构拆分为多个相互依赖的会话:
- 第一个会话:修复遗留问题(如清除旧兼容性代码)。
- 第二个会话:将 Less 迁移到 Tailwind。
- 第三个会话:更新 React 和相关库。
- 每个会话生成一个 Pull Request,父分支依次为
main→ session1 → session2 → session3。
-
结果:通过堆叠会话,她能够逐步提交 PR,每个 PR 的变更范围可控,且最终所有改动可合并到主分支。整个过程使用 AI 协助代码生成和审查,显著缩短了原本数周的工期。
值得关注
- 堆叠会话功能目前已在 GitHub Copilot 应用中推出,适合用于大型重构或渐进式功能开发。
- 该功能允许 AI 在多个任务间保持上下文连贯,避免一次性生成大量代码带来的混乱。
- 开发者需注意现有分支管理,避免遗漏之前的部分更新。
