网易首页 > 网易号 > 正文 申请入驻

用Git工作树隔离多个编码代理,避免共享状态冲突

0
分享至

第一次尝试在同一个项目上同时运行两个编码代理时,结果和预想的一样糟。它们都在同一个目录里编辑文件,结果就像两个人同时在同一页纸上写字——一半未完成的编辑插进另一半的工作中间,构建结果毫无意义,也分不清哪处改动是谁的。

我的第一反应是让它们协调:加锁、轮流、排队。这个直觉是错的,想清楚错在哪,才是关键。问题不在于缺少协调,而在于共享状态。而对付共享状态最干净的办法,不是去协商访问权,是干脆别共享。


隔离,而不是当裁判

两个进程抢同一批文件,你可以试着当裁判——给共享的东西加把锁,让它们轮流来,定一套谁在什么时候改什么的协议。两个代理时这招管用,到十个就是噩梦。每多一个代理,就多一个谈判方,就多一条让协调本身死锁或饿死的路径。你把一个并行问题变成了分布式系统问题,而分布式系统问题,是周末报废的地方。

隔离把这件事翻了过来。如果每个代理都有自己的工作树副本,就没有什么需要裁判——它们可以全速往前冲,因为谁也看不见、更破坏不了别人正在进行的编辑。并行不再是抢同一页纸,而是一叠各自独立的纸,最后再归拢到一起。十个代理不是十倍的协调量,而是十个独立工作区加一次合并。

并行工作争抢共享状态时,别去造更好的裁判。把共享拿掉。隔离能扩展的地方,协调会崩塌。

Git里那个被低估的功能

Git自带一个正好干这件事的功能,而且被严重低估了。工作树是同一个仓库的第二份(或第三份、第十份)检出,住在自己的目录里,在自己的分支上,但共用同一个底层对象库。你不是把整个仓库克隆十遍、吃掉十倍的磁盘和历史,而是给同一段历史开十扇轻量窗口,每扇窗口可以在不同分支上、带着不同的未提交改动,谁也踩不到谁。

  • 给一个代理开独立检出:git worktree add ../work-feature-a feat/thing-a
  • 第二个代理,与第一个完全隔离:git worktree add ../work-feature-b feat/thing-b
  • 每个目录都是真实工作树,一边的编辑在合并前对另一边不可见

共享对象库在这里悄悄干了两份活。它既是这套设置便宜的原因,也是最后重聚轻而易举的原因:因为每个分支都活在同一段历史里,git本来就能看见它们全部,工作一完成就能把任意两个调和到一起。经济性才是它在规模上可行的关键——立起一个工作树,花的是点磁盘和一点设置时间,恰恰因为昂贵的那部分,也就是仓库历史,是共享的。所以多加一个并行代理的成本接近于零,这正是你在决定把一个任务摊给五个工人、还是自己硬啃时想要的性质。

从origin/main切,别从本地状态切

还有一个更隐蔽的失败,工作树能修掉,而我是被烧过才学会的。同一仓库上同时跑着好几个代理时,主检出几乎从来不是干净状态——里面通常还堆着我一个小时前留下的未提交工作。新代理如果从那儿拉分支,就会继承一堆跟它任务毫无关系的烂摊子,这堆烂摊子还会跟着进它的提交。所以规则不只是"每个代理一个工作树",而是每个工作树都从origin/main拉分支——一个干净、已知的基线,而不是从本地此刻恰好检出的东西。

哪怕只是改一个字符的文档,我也跑这一行,因为隔离保证的价值永远高于它花掉的那一秒。每个代理都从同一个确定起点出发,而不是从某个时间上的意外出发。这跟把世界安排成"危险的事根本发生不了"、而不是"信任自己会小心"是同一种直觉——安全不是靠警觉挣来的,是靠结构挣来的。从origin/main切出来的工作树,根本不可能继承兄弟代理的半成品编辑,因为它从没见过。

不让这套做法自己变成另一种乱子的纪律是:只在工作真的冲突时才动用隔离。代理并行编辑文件、否则就会冲突时,每个代理一个工作树是对的。代理只是读、或者在做真正互不相干、永不碰同一棵树的事时,这是错的——纯属开销。读密集的扇出不需要隔离,全都可以对着一个检出跑,因为没人在写。

所以我遵循的规则是:隔离写者,读者共享。一群代理审计代码库,可以同时看同一批文件,没什么需要保护的。一群代理各自转换不同文件,就需要人手一个工作树,因为这时有真实状态要防止缠在一起。让隔离程度匹配工作是否发生变更,才能让开销保持诚实,而不是变成仪式。

这对我来说不是假设的模式。这个项目一度同时有大约三十个工作树在跑,每个都是一个以任务命名的目录——og-cards、net-thumbs、home-stats、turnstile、oz-sources——每个都在自己的分支上:feat/per-page-og-ca

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
被央视点名批评的6部烂剧,几乎全被下架,最后一部至今没播大结局

被央视点名批评的6部烂剧,几乎全被下架,最后一部至今没播大结局

小Q侃电影
2026-09-29 11:09:15
美国币圈37岁华人女高管暴毙!发完“宁愿拿0美元也不封口”帖子次日死于加州沙漠

美国币圈37岁华人女高管暴毙!发完“宁愿拿0美元也不封口”帖子次日死于加州沙漠

听心堂
2026-09-28 20:12:57
上千辆导弹发射车频繁机动,数百个弹道导弹发射井全部启封,谁敢动?

上千辆导弹发射车频繁机动,数百个弹道导弹发射井全部启封,谁敢动?

聚峰军评
2026-09-29 11:40:09
美股三大指数集体下跌,芯片、光通信股走强,美债再遭猛烈抛售

美股三大指数集体下跌,芯片、光通信股走强,美债再遭猛烈抛售

21世纪经济报道
2026-09-29 23:12:16
台选举突变!78岁洪秀柱重出江湖,创党元老倒戈,沈伯洋出面救场

台选举突变!78岁洪秀柱重出江湖,创党元老倒戈,沈伯洋出面救场

梦史
2026-09-29 09:16:00
又一女间谍曝光!国安部发声,套取近百份军工情报,手段防不胜防

又一女间谍曝光!国安部发声,套取近百份军工情报,手段防不胜防

眼底星碎
2026-09-29 04:45:26
糟了!杨瀚森时间没了!?他两就能打48分钟!!

糟了!杨瀚森时间没了!?他两就能打48分钟!!

柚子说球
2026-09-29 21:10:45
中国沙漠种麦闹乌龙:原本只为“保粮仓”增产,却意外发现金黄麦浪成治沙神器,彻底改变治沙思路?

中国沙漠种麦闹乌龙:原本只为“保粮仓”增产,却意外发现金黄麦浪成治沙神器,彻底改变治沙思路?

扶苏聊历史
2026-09-28 16:12:11
“你是网红孩子,全班都得迁就你?”家长吐槽女儿落选,网友急了

“你是网红孩子,全班都得迁就你?”家长吐槽女儿落选,网友急了

泽泽先生
2026-09-29 12:32:38
3名中国员工称在境外一公司被强行辞退,遭拖拽殴打 律师:属独立境外法人,劳动纠纷原则上应在越南处理

3名中国员工称在境外一公司被强行辞退,遭拖拽殴打 律师:属独立境外法人,劳动纠纷原则上应在越南处理

红星新闻
2026-09-28 23:38:02
杰洛特换发型了!《巫师3RE》新增短发略显杀马特

杰洛特换发型了!《巫师3RE》新增短发略显杀马特

游民星空
2026-09-29 10:03:33
九亿姐和大黑牛离婚的内幕!

九亿姐和大黑牛离婚的内幕!

八卦疯叔
2026-09-29 10:00:09
孙颖莎丢金似早有征兆,一细节生涯罕见,对比之下王曼昱截然不同

孙颖莎丢金似早有征兆,一细节生涯罕见,对比之下王曼昱截然不同

泠泠说史
2026-09-30 01:04:06
养老金“特权设计”被骂上热搜,郑秉文用双轨制特权?真相不简单

养老金“特权设计”被骂上热搜,郑秉文用双轨制特权?真相不简单

青梅侃史啊
2026-07-30 22:02:45
甲骨文市值大涨超2200亿元

甲骨文市值大涨超2200亿元

21世纪经济报道
2026-09-30 00:38:38
英国专家看透了:中国至少相当于100个伊朗,美国迟早要滚出亚太

英国专家看透了:中国至少相当于100个伊朗,美国迟早要滚出亚太

蜉蝣说
2026-09-17 10:59:39
这是在明抢?普京签署命令,德国企业在俄资产,被强行接管!

这是在明抢?普京签署命令,德国企业在俄资产,被强行接管!

碧海孤航
2026-09-29 23:56:42
A股:尾盘释放了两个信息,明天,节前最后一个交易日或要这样走

A股:尾盘释放了两个信息,明天,节前最后一个交易日或要这样走

明心
2026-09-29 16:24:10
不帮俄罗斯都不行了?美国逼中国入局,中方走了一步妙棋瞬间破局

不帮俄罗斯都不行了?美国逼中国入局,中方走了一步妙棋瞬间破局

时尚的弄潮
2026-09-27 06:23:26
禁止在景区开会、不得报销扑克牌......多地高校发布“过紧日子”实施细则,从“靠觉悟省钱”到“靠制度管钱”

禁止在景区开会、不得报销扑克牌......多地高校发布“过紧日子”实施细则,从“靠觉悟省钱”到“靠制度管钱”

大风新闻
2026-09-29 20:45:28
2026-09-30 04:11:00
我是一个粉刷匠2
我是一个粉刷匠2
有态度网友ytd
178文章数 168关注度
往期回顾 全部

科技要闻

82亿美元收购!李飞飞将与苏姿丰并肩做AI

头条要闻

空姐双膝下跪“还被要求踹一脚” 现场画面流出

头条要闻

空姐双膝下跪“还被要求踹一脚” 现场画面流出

体育要闻

石雨豪:亚运金牌与背后的十年

娱乐要闻

赌王四房婚礼,何超琼带三房成员现身

财经要闻

央行调整完善若干货币政策工具

汽车要闻

搭华为乾崑ADS 5/设计风格换新 2027款纵横G700售30.49万起

态度原创

旅游
艺术
家居
公开课
军事航空

旅游要闻

速来大报恩寺的“塔之长廊”,赴一场跨越千年的古塔之约

艺术要闻

齐白石:没见过的东西,我绝不画!一句话,道出大师封神的秘密!

家居要闻

2026建博会(广州) 公装联探展交流活动

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

伊朗最高领袖最新发声:伊朗现已变得独立、强大

无障碍浏览 进入关怀版