AI 编程助手默认一次只处理一个仓库,但实际开发中一个功能往往横跨后端、合约、前端等多个仓库。作者尝试了复制粘贴、把所有仓库放同一目录、使用 --add-dir 三种方案,各有痛点。最终方案是用 git worktree 构建真实目录树,实现 agent 跨仓库上下文一致、工具链零适配、任务隔离。
尝试一:复制粘贴。不同仓库开不同会话,手动复制 API 签名、重述上下文,简单变更可用,但涉及跨仓库调用链时立刻崩溃。
尝试二:项目根目录启动。把 36 个仓库堆在 ~/project/ 下,agent 启动时先花时间遍历所有目录,返回扁平列表,无法区分目标仓库和社区仓库。更糟的是:同一仓库只有一个工作副本,一个任务未完成时无法启动第二个任务,需手动 git stash / 切换分支。
尝试三:--add-dir 拼接。Claude Code 支持附加额外目录,但仓库分散在绝对路径下,编译器、语言服务器等工具链依赖真实相对路径,跨仓库跳转和构建失效,一行改动变成发布-测试循环。
最终方案:使用 git worktree 将各仓库的实际副本并排放置在同一个目录树中。每个 workspace 为一个独立任务隔离环境,共享同一份 .repos 池的 git objects,创建销毁近乎零成本。四个优势:跨仓库上下文一致、agent 按需拉取仓库(不预遍历)、工具链零适配、任务隔离无分支污染。
作者用 bash + git + markdown 实现了一个原型工具 Orbit,零服务、零运行时。已修复:仓库笔记过于沉重,改为紧凑卡片记录何时引入该仓库和从哪开始读。待改进:笔记可能过时;脚本可靠性引关注,计划用 Go 重写为单静二进制。
资源链接:github.com/orbcli/orbit
#开发者 #工具 #Orbit #git #worktree #AI #Agent #DevOps #polyrepo
@DevToolboxHub
