如何在 VS Code 中继续 GitHub Copilot app 会话
How to continue a GitHub Copilot app session in VS Code
在 GitHub Copilot app 会话里选择 Open in VS Code 后,编辑器会打开该会话关联的 worktree,并在 Copilot 侧边栏继续原来的任务、计划和对话。
代理已完成你这次改动的大部分工作。现在你想检查某一处实现细节,手动调整几行代码,并在发布前于本地运行该项目。
但这些工作位于 GitHub Copilot 应用中……而你的编辑器才是审查差异、调试代码并做最终调整的地方。你是否必须在留在该会话中与在 Visual Studio Code 中重新开始之间做出选择?
不必。你可以直接在 VS Code 中打开 Copilot 应用会话,并在其对话、代码更改和工作上下文都保持完整的情况下继续。这意味着 Copilot 可以处理重复或耗时的工作,然后将控制权交还给你,以便进行更仔细的审查、亲手编辑和本地测试。
在本教程中,你将学习如何:
- 在 VS Code 中打开 Copilot 应用会话。
- 逐行审查代理的更改。
- 从你的编辑器继续同一对话。
- 在本地修改并测试代码。
- 将你的更新推送到与该会话关联的拉取请求。
先决条件
开始之前,请确保你已具备:
- 已安装并登录 GitHub Copilot 应用。
- 已安装 Visual Studio Code,并连接到同一个 GitHub 账户。
- 一个包含你想审查或继续的代码更改的 Copilot 应用会话。
- 在该会话所属仓库中工作并推送更改的权限。
本教程假定你已经能够熟练地在 VS Code 中导航、在其集成终端中运行命令,以及使用 Git 分支和拉取请求。
1. 从 Copilot 应用中的会话开始
打开你想继续的会话。在进行交接之前,花一点时间审查该任务以及 Copilot 已完成的工作。
会话包含的不仅仅是一组已修改的文件。它还记录了任务、计划以及产生这些更改的对话。当你想了解 Copilot 为何选择某一特定实现,或要求它修改部分工作时,这些上下文非常重要。
在转到 VS Code 之前,你不需要总结这段历史,也不需要把它复制到新的聊天中。
2. 在 VS Code 中打开该会话
在该会话中选择 在 VS Code 中打开。如果应用列出了多个受支持的编辑器或 VS Code 安装,请选择你要使用的一个。
VS Code 会使用与该会话关联的工作树来打开项目。它还会在 Copilot 侧边栏中显示现有会话。
这样,你便获得了原始工作中三个彼此关联的部分:
- 会话上下文:任务、计划和对话仍然可用。
- 差异:代理所更改的文件和代码行已准备好供审查。
- 工作树:VS Code 打开的是该会话使用的同一个隔离工作树。
你是在继续现有会话,而不是在新的编辑器窗口中重建它。
3. 审查代理的更改
在编辑之前,请先在 VS Code 中检查差异。打开源代码管理视图以查看已更改的文件,然后选择某个文件逐行审查其更改。
请像审查任何其他提议的更改一样审查该实现。尤其要检查:
- 代码解决了所请求的问题。
- 实现遵循该仓库的约定。
- 错误状态和边界情况得到了适当处理。
- 测试覆盖了已更改的行为。
- 没有修改无关的文件或行为。
保留的对话可以帮助解释 Copilot 如何得出该实现。如果有不清楚的地方,请继续在侧边栏中向 Copilot 发出提示。例如:
Explain why you changed this function instead of adding a new helper. Identify any behavior this could affect.你也可以让 Copilot 再做一项更改。由于会话和工作树仍然保持连接,你不必从头描述任务。
4. 进行动手编辑
一旦你理解了建议的更改,就可以直接在 VS Code 中编辑任何文件。
这对于手动完成更快或更容易的调整很有用,例如:
- 优化标签或错误消息。
- 为了更清晰而重命名变量。
- 调整布局或样式。
- 添加缺失的测试用例。
- 应用特定于仓库的约定。
你正在编辑该会话现有的工作树,因此你的手动更改会直接建立在代理的工作之上。你无需在目录之间复制文件,也无需手动重新创建分支。
5. 在本地运行并验证项目
使用 VS Code 集成终端运行项目的常规验证工作流。具体命令取决于仓库,但一些 Web 应用示例可能包括:
npm installnpm testnpm run lintnpm run dev
对待代理生成的更改应与对待人工编写的代码一样:运行相关测试、检查失败情况,并亲自验证行为。
如果开发服务器打印出 localhost URL,请打开它以在浏览器中测试更改。当你的 VS Code 设置支持时,你可以在 VS Code 的集成浏览器中打开该 URL,并在不离开编辑器的情况下检查结果。
对于用户界面更改,既要验证所请求的行为,也要验证邻近状态。例如,在不同视口尺寸下检查修改后的组件,并确认加载、空状态和错误状态仍然正常工作。
6. 继续使用 Copilot 或自行继续编辑
在任何时候,你都可以选择最适合下一步的交互方式:
- 当更改需要全仓库分析或重复性编辑时,向 Copilot 发出提示。
- 当你清楚自己想要的确切更改时,直接编辑。
- 在测试和完善实现时,迭代地同时使用这两种方法。
例如,在进行手动 UI 调整后,你可以这样要求 Copilot:
为更新后的标签添加测试并运行相关测试文件。不要修改无关组件。
由于你仍处于原始会话中,Copilot 保留了解释“更新后的标签”所需的上下文。
7. 提交并推送完成的更改
当实现准备就绪时,再审查一次最终 diff。然后使用源代码管理视图或集成终端提交并推送更改:
git statusgit addgit commit -m "Refine session changes"git push
使用仓库常规的分支、提交、审查和批准实践。由于 VS Code 打开了与该会话关联的工作树和分支,推送该分支会更新已经跟踪这项工作的拉取请求。
无需将完成的文件复制到另一个检出目录,也无需手动将这项工作重新关联到拉取请求。
从代理到编辑器的连续工作流
在 VS Code 中打开 Copilot 应用会话,可以让你清晰分工,而无需拆分工作本身。Copilot 可以承担较大或重复性的实现,而你可以进入编辑器进行详细审查、针对性更改、本地测试和最终打磨。
会话、diff 和工作树会随你一起移动。先在 Copilot 应用中指导工作,每当你想要动手控制时切换到 VS Code,并通过同一拉取请求工作流推送完成的结果。
准备好试用了吗?下载 GitHub Copilot 应用,开始一个会话,并在你准备好继续编码时在 VS Code 中打开它。
文章 如何在 VS Code 中继续 GitHub Copilot 应用会话 最初发布于 The GitHub Blog。
来源:GitHub Blog · AI & ML · github.blog