前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9915
  • 别再写更长 Prompt:上下文工程才是真正的 AI 技能
  • 窃密木马通过 Cookie 劫持 Claude 会话
  • 长期运行 Agent 的核心不在提示词工程
  • Claude修复全部对齐失败,但2.4%时会作弊
  • Agent 上下文需要完整的开发生命周期管理
  • Agentic Coding实战:任务路由让AI编码账单降低90%
  • DeepSeek V4 首个多模态模型 MIT 开源
  • OpenClaw 2.0 开源 AI 平台:自动识别 API 密钥、支持多人协作
  • OpenAI采购数万台Mac训练计算机操控AI智能体
  • GitHub Copilot VS Code 2026年8月更新:Agent会话管理与变更审查改进
  • Claude Code Opus 5 Auto Mode 被成功破解
  • Crawl4AI v0.9.2:专为LLM设计的开源网页爬虫
  • 模型频繁迭代导致Agent失忆?Uteke给出解法
  • 2026年如何用AI进行智能合约安全审计
  • 千问创作上线Agent Teams,用户说创意Agent分工完成视频制作
  • 循环工程AI Agent:2026软件开发的范式转变
  • GPT-6灰测demo曝光,周四即将正式发布
  • Hugging Face 事件透视:AI Agency 与 Agents 的真实挑战
  • ChatGPT Work 产品解析:云端版与本地版有何不同
  • 日志显示成功实际零交付:生产管道事故复盘
  • 用 Git Worktree 并行跑多个 Coding Agent
  • 语音 Agent 推理延迟基准测试:TTFT 全链路排名
  • Google发布EnvHarness:将静态Agent评测环境转为自适应训练场
  • AI队列事故:175条标记完成但零交付的排查实录
  • 在 PR 合并前用 AI Agent 真实利用漏洞验证安全风险
  • 放弃聊天机器人:Prompt导向编程(POP)架构实践
  • Manrova:持续监控型多Agent系统设计实践
  • Trust Cop:MCP工具漂移检测安全Agent
  • Spline V2:AI Agent可通过MCP协议直接操控3D场景
  • ACAI第20章:RAG知识系统与数据管线的工程实践
  • 检索工程正成为AI Agent时代的关键工程学科
  • Agentic RAG实战:运行时决策替代静态检索管道
  • AI Agent 效果取决于外围工程设计
  • Agent执行环需要护栏而非另一个框架
  • 英伟达Nemotron 3 Nano 30B开源:背后是GPU销售策略
  • 开源安全lint工具VibeGuard:专为AI生成代码设计,检出SQL注入、硬编码密钥等典型问题
  • 我用免费模型做数据库索引审查48小时
  • Need-to-Know:用最小权限原则防止AI数据泄露
  • 改一个base_url接入15个国产大模型
  • 让AI编程助手实时读取运行中服务的API文档
  • 受控自主权:AI Agent软件工程的安全设计模式
  • 防止不稳定API导致AI Agent崩溃:指数退避+熔断+优雅降级
  • exactly-once:保障AI Agent支付等副作用只执行一次
  • 研究:Claude Code和Coze等AI编程助手普遍高估任务耗时10倍
  • PES架构:AI Agent需要两个信任域
  • AI 写不好推销信?问题在检索不在 prompt
  • AI 代码审查应作为质量门禁而非 PR 评论
  • 2026年Legacy Java现代化AI工具实战评测
  • Anthropic悄然降低Claude Code用量上限:纸面提升实为削减
  • ODS:把个人电脑变成私有AI服务器的部署系统
  • awesome-claude-skills:1000+Claude技能与插件精选列表
  • 已加载 51 / 9915
8.0
热点
AI SCORE
编程提效2026-08-31 05:29

用 Git Worktree 并行跑多个 Coding Agent

dev.to · AI#Git#Coding Agent#并发
Editor brief · 编辑速览

通过 git worktree 为每个 coding agent 创建独立工作目录,避免多任务时文件冲突问题,每个目录共享同一仓库但分支独立。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

我在使用 coding agents 时一直碰壁。在一个仓库里跑一个 Claude Code 或 Codex 会话效果很好,但一旦想同时推进两个任务——一个终端做登录,另一个做支付——它们就开始互相踩踏。同一个工作目录、同一份检出的分支、两个进程同时编辑同一个文件。混乱。

Traditional workflow: each developer on their own machine, one working copy, one task at a time; feature branches meet in develop and main via PRs

解决方案其实是一个 Git 功能,已经存在多年了:git worktree。它允许你从同一个仓库创建多个工作目录。每个文件夹有自己检出的分支,但它们共享同一套 objects、commits 和分支列表。

从主 checkout 目录执行:

git worktree add ../integration -b integration main
git worktree add ../feature-login -b feature/login main
git worktree add ../feature-payments -b feature/payments main

最终目录结构大致如下:

project/
├── main/               → branch main
├── integration/        → branch integration
├── feature-login/      → branch feature/login
└── feature-payments/   → branch feature/payments

现在每个 agent 都有了自己的文件夹。一个 worktree 对应一个终端,一个终端对应一个 agent,没人碰别人的文件:

cd feature-login    # agent 1 works here
cd feature-payments # agent 2 works here, at the same time

Workflow with agents and worktrees: one shared repo with main, integration and feature worktree folders, one agent per folder, all in parallel on a single machine

令我惊讶的是:不需要 push,不需要 pull

我的第一反应是:agent 完成登录后,push 分支,然后我把它 pull 到 integration 分支。这是团队协作养成的习惯。

但在这里完全没必要。所有 worktree 都属于同一台机器上的同一个仓库,所以 Git 在本地已经知道每一个分支。当 agent 1 完成后:

cd feature-login
git add .
git commit -m "feat: implement login"

...integration worktree 可以直接合并它:

cd ../integration
git merge feature/login
git merge feature/payments
npm test

不需要 git push,也不需要 git pull。目录不同,但 feature/login 和 integration 是同一个仓库的不同分支。当 integration 变绿后:

cd ../main
git merge integration

你甚至不需要等 worktree 删除后才能合并它的分支。两个文件夹可以同时存在。Git 唯一拒绝的是同一个分支同时在两个 worktree 中检出——而这恰恰是多个 agent 并行工作时需要的保护机制。

功能完成时,不要直接 rm -rf:

git worktree remove ../feature-login
git branch -d feature/login

git worktree remove 会删除文件夹并清理 Git 的内部注册表。如果你已经手动删除了文件夹,git worktree prune 会帮你事后修复记录。

一个完整任务的周期是这样的:

git worktree add ../feature-login -b feature/login main   # create
cd ../feature-login                                       # agent works, commits
cd ../integration && git merge feature/login && npm test  # integrate
git worktree remove ../feature-login                      # discard workspace
git branch -d feature/login                               # discard branch

那么 GitHub 在哪里发挥作用?

对于在同一台机器上协作的 agents 来说:没有任何作用。Git 本身才是通信机制。

GitHub 在人类介入时才发挥作用——PR、review、CI、审计追踪:

cd feature-login
git push -u origin feature/login   # open a PR from this

如果你想让 integration 合并远程分支的内容而不是本地分支:

git fetch origin
git merge origin/feature/login

我现在把它看作两个独立的层面。本地:worktree → commit → 合并到 integration → 测试。远程:push → PR → review → CI。第二个层面是给人的;第一个层面才是 agents 实际工作的地方。

真正让我下定决心的一点是:integration agent 从不从其他 agent 复制代码,从不读取它们的文件夹,甚至不知道它们的存在。它只知道它们的分支名。Git 一直是消息总线。

附加说明:当每个 agent 都想要 port 3000 时

Worktree 隔离的是文件和分支,而不是运行时。一旦两个 agent 都运行 npm run dev 和 Playwright 测试套件,它们都会抢占 :3000、同一份测试数据库,而且每个 headless 浏览器都会占用大量 RAM。

我目前采用的解决方案很无聊:在创建时通过 env 文件为每个 worktree 分配独立端口,Playwright 读取它作为 baseURL:

echo "PORT=3101" > ../feature-login/.env.local
echo "PORT=3102" > ../feature-payments/.env.local

但端口只是问题的一个方面。隔离测试数据库、让三个浏览器套件不会耗尽机器资源,以及决定是否应该只有 integration worktree 才能运行 E2E 测试——这些都值得单独写一篇文章。下一篇就是这个。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
日志显示成功实际零交付:生产管道事故复盘
下一篇
语音 Agent 推理延迟基准测试:TTFT 全链路排名