全部文章
工作流

用 Git worktree 给编码助手开一张独立工作台

主目录有未提交改动时,用 worktree 把新任务放到独立目录。

资料核验2026.11.12 · Git · 已有版本历史的项目

你正在改付款页,助手只需要修文档生成脚本。把两件事挤在一个目录里,最后最麻烦的是判断哪几处改动该一起提交。Git 的 worktree 可以让同一个仓库同时检出多个分支,各目录有独立的工作文件和暂存区。

给 AI 的上下文与边界

假设你正在本地改付款页,只授权 Codex 在新 worktree 修文档脚本。交给它主目录和新目录的绝对路径、基准提交以及只允许修改的范围。先让它报告当前目录和状态,确认没有跨到付款页目录。

流程示意:主目录有未提交改动;从 HEAD 建分支;对照两个状态

先约好从哪个提交出发

在主目录跑 git status --short,记录现有改动,再用 git worktree add -b docs-fix ../docs-fix HEAD 建一个目录。新目录来自 HEAD,不包含主目录里没提交的文件。如果脚本确实依赖尚未提交的内容,先把那份依赖变成一个可以引用的提交。

把新目录路径作为任务的一部分交给助手。结束后分别检查两个目录的状态,确认自己的付款页改动仍在,另一边只包含脚本修复。

准备删除 worktree 时,先确认改动已经提交或另有备份。开发服务器也记得用不同的端口。

可以直接照着做的演练

任务单写清主目录改动文件如 src/checkout.ts,新目录只改 scripts/docs.mjs。开工前后两边各留一份 git status --short。交付只包含新分支提交和运行过的文档命令,主目录的半成品无需移动。

检查生成结果

  • 主目录原有未提交文件仍在。
  • 工作台中只出现脚本和相关验证改动。
  • 删掉临时目录前,该目录需要保留的提交仍能在分支历史里找到。

复查时追问一层

worktree 会隔离检出的文件和暂存区,但同仓库引用仍可共享。测试端口、临时数据库、构建目录也应按任务确认。若新任务确实依赖主目录未提交内容,先把该依赖整理成可引用的提交再交接。

如果新任务要跑同一套数据库或监听同一个端口,worktree 不会隔离这些外部资源。让助手在两个目录打印各自运行的端口和配置路径,并使用独立测试库。验收时分别检查代码差异和运行输出,避免改动隔离了,测试数据却串了。

资料来源