Full markdown reading view
大多数开发者用了 10 年 git,从没用过 worktree。
大多数开发者用了 10 年 git,从没用过 worktree。
因为以前根本没必要——同时开 5 个分支?谁会这么干?
AI 编程代理出现之后,这一切变了。
───
现在我同时跑 5-10
来源: https://x.com/chenchengpro/status/2032411474703053012
缓存文件: /mnt/ramdisk/test/@chenchengpro_status_2032411474703053012.session.json
抓取时间: 2026-03-13T12:10:57.350Z
正文
作者: @chenchengpro (陈成)
时间: Fri Mar 13 11:00:30 +0000 2026
链接: https://x.com/chenchengpro/status/2032411474703053012
大多数开发者用了 10 年 git,从没用过 worktree。
因为以前根本没必要——同时开 5 个分支?谁会这么干?
AI 编程代理出现之后,这一切变了。
───
现在我同时跑 5-10 个 Claude Code / Codex session,每个代理处理一个任务。但问题来了:每个代理都需要独立的工作目录,不能互相踩文件。
解法:git worktree + pnpm 全局虚拟存储。
一个 bare 仓库作为中心,每个代理一个 worktree:
git clone --bare https://t.co/LjNchNLUGW你的/仓库.git repo
cd repo
git worktree add ./main main
git worktree add ./feat-a feat/task-a ← Agent A
git worktree add ./fix-b fix/task-b ← Agent B
git 对象只有一份,分支却全部同时 checkout。
───
但 node_modules 怎么办?每个 worktree 都要装一遍,几百 MB 乘以 10 个代理?
pnpm 的 enableGlobalVirtualStore 解决了这个:
pnpm-workspace.yaml
enableGlobalVirtualStore: true
开启之后,每个 worktree 的 node_modules 里只有符号链接,指向磁盘上同一份内容寻址存储。
第一次 pnpm install 下载包,后面每个新 worktree 的安装几乎是瞬时的。
10 个代理,磁盘开销接近于 1 个。
───
pnpm 自己的仓库就是这套配置,还封装了辅助命令:
pnpm worktree:new feat/my-feature # 新建 worktree
pnpm worktree:new 10834 # 直接拉 PR,支持 fork
分支名的斜杠自动转成目录名,.claude 配置全局共享,省去重复设置。
───
AI 代理时代的并行开发工作流,不是多开几个终端那么简单。
每个代理需要真正的隔离:独立文件、独立分支、独立依赖树。
git worktree + pnpm virtualstore,是目前最轻量的答案。
───
如果觉得有用,可以直接去看 pnpm 11.x 的文档:https://t.co/gDAedQE8Pq
评论 (6)
评论 点赞 2467
作者: @HiTw93 (Tw93)
时间: Thu Mar 12 13:48:02 +0000 2026
链接: https://x.com/HiTw93/status/2032091246588518683
评论 点赞 231
作者: @dddanielwang (DanielW)
时间: Thu Mar 12 11:21:21 +0000 2026
链接: https://x.com/dddanielwang/status/2032054332586381696
阅读并实践 learn-claude-code,如果你想进入agent开发
learn-claude-code 从最精简的 agent loop 开始,一步步介绍tool, planning (todo, skill, etc,),memory, concurrency, agent collaboration
最重要的是搭配代码讲解,可放在手边随时运行!
@wquguru 大佬也在开发 https://t.co/Y1GdUskYVL 课程,附有quiz,而且也涵盖claude code, openclaw课程,都是非常好的学习资源
推荐bite-sized学习,学一点就马上上手代码实践,还有很多repo:nanoagent, bub, pi mono
get your hands dirty,it’s far easier to start
媒体链接:
评论 点赞 190
作者: @jakevin7 (卡比卡比)
时间: Fri Mar 13 05:39:50 +0000 2026
链接: https://x.com/jakevin7/status/2032330774196981833
这几天把 xiaohongshu-cli 连续打磨了一轮,做了几件我自己很满意的事:
- 放弃了没必要的 server 方案,回到纯 CLI,但把真正有价值的状态能力保住了:
- xsec_token + xsec_source 成对缓存
- search 更像浏览器真实请求链
- search_id / note context 复用
- read / comments / reread 的连续链路更稳
-
补了一整套真实只读 smoke tests,不只是单测
直接验证:
search -> read -> comments -> feed -> reread
这类连续场景在真实登录态下能不能跑通 -
做了短索引交互
现在不光能:
- xhs read 1
- xhs comments 1
还支持:
- xhs like 1
- xhs favorite 1
- xhs unfavorite 1
- xhs comment 1 -c “…”
- xhs reply 1 --comment-id … -c “…”
而且 search / feed / hot / user-posts / favorites / my-notes 都会刷新索引。
顺手还吸收并重做了社区 PR 的产品思路,把实现按当前主线重构了一遍,避免把新的 anti-blocking 逻辑回退掉。
最新版本:v0.6.3
https://t.co/mi1L5h6GNU
评论 点赞 96
作者: @elliotchen100 (艾略特)
时间: Fri Mar 13 00:00:35 +0000 2026
链接: https://x.com/elliotchen100/status/2032245398937747944
终于有敢正面挑战 Electron 地位的新框架了吗?挺有意思,「老登」确实在位太久了。
更轻、更快、TS-first,而且基于系统 WebView 的 Electron 替代品,本质上是用一部分成熟度和一致性,去换更小体积、更好性能和更顺手的工程体验。
如果你更看重:成熟生态、对 Chromium 特性完全可控、以及各种唾手可得的 Electron 插件,那老老实实用 Electron 还是更合适。
如果你优先要的是:更小体积、更快启动、TS-first 开发体验加内建更新流水线,而且不介意依赖系统 WebView,那 Electrobun 会更像一个「现代化的 Electron 替代品」。
Electron:Node.js + 打包的 Chromium(自带一整套浏览器引擎)。
Electrobun:主进程用 bun 跑 TypeScript,UI 用系统自带 WebView(macOS WebKit、Linux WebKitGTK 等),原生层通过 Zig/C++ 实现绑定。
媒体链接:
评论 点赞 5
作者: @fineandthx (荧光蛙(GlowFrog))
时间: Fri Mar 13 12:00:38 +0000 2026
链接: https://x.com/fineandthx/status/2032426606145511842
@chenchengpro worktree 真是被低估了 多开几个 agent 不隔离目录很快就互相踩文件
pnpm 这招也很实用 10 个分支装一次依赖就够了
评论 点赞 6
作者: @zangjiaao (zangjiaao)
时间: Fri Mar 13 12:03:48 +0000 2026
链接: https://x.com/zangjiaao/status/2032427403356848330
@chenchengpro 边界要确定好,要不一会冲突要处理
Capture Diagnostics
{
"mode": "thread",
"started_at": "2026-03-13T12:10:02.555Z",
"ended_at": "2026-03-13T12:10:57.348Z",
"rounds_executed": 19,
"expand_clicks": 0,
"last_visible_expand_buttons": 0,
"termination_reason": "stable_idle",
"incomplete": false,
"likely_incomplete": false,
"error_code": null,
"resumed_from_cache": false,
"imported_tweets": 0,
"imported_users": 0,
"cache_path": "/mnt/ramdisk/test/@chenchengpro_status_2032411474703053012.session.json",
"cache_age_ms": null,
"cache_prior_likely_incomplete": false,
"cache_expired": false,
"newly_captured_tweets": 7,
"last_expand_button_texts": [],
"clicked_expand_button_texts": []
}