跳到主内容
快讯直播
AI智模界
AI 词典

主干开发:所有人往 main 上合,智能体也一样

一句话定义:主干开发(Trunk-Based Development)是一种代码分支策略,即所有人——包括写代码的智能体——都频繁地把很小的改动合入同一条主干(trunk,通常就是 main),而不是各自拉长期分支各干各的;某个功能是否上线,由特性开关(Feature Flag)控制,而不是由“分支有没有合并”决定。

为什么这么做:长期分支最大的敌人是合并冲突。打个比方:一份 PPT 如果每个人拷走改一个月再交回来,合并时必然面目全非;主干开发是大家在同一份在线文档上改,每次只改一小段,改完立刻提交。冲突没消失,但被切成了每天几十个小冲突,随手就能解掉。

代价是它对工程基建要求很高,通常配套四件事:

配套机制作用
小批量提交一次改动几百行以内,分支活几小时到一两天
持续集成(Continuous Integration, CI)合入即自动构建测试,坏了当场修或回滚
特性开关代码合进去但默认关闭,上不上线由开关决定
合并队列(Merge Queue)多个改动排队串行验证,避免互相踩踏

和相邻概念的区别:Git Flow 保留 develop、release、hotfix 等长期分支,发布节奏重;GitHub Flow 是“短分支 + 拉取请求(Pull Request, PR)评审 + 合并”,本质仍是分支合并驱动发布。主干开发把分支寿命压到极短,甚至直接推主干配合代码评审,发布与合并彻底解耦——功能代码可以先躺在 main 上,开关一开才算上线。

智能体加入后,冲突模式变了:人一天提交几次,冲突窗口小;智能体可以并行开十几个 PR,每个都基于几分钟前的 main,而且它们偏爱改同一批“公共设施”——路由表、配置文件、类型定义、依赖清单。于是冲突从“文本冲突”变成“语义冲突”:Git 显示无冲突合并成功,但两个开关互相覆盖、两个智能体各自写了一个同名工具函数、两份迁移脚本顺序颠倒。主干开发会把这个矛盾放大,因为所有智能体都挤在同一条主干上,谁合得慢,谁就得重新跑一遍验证。实践上要靠更细的改动拆分、按目录划分所有权、严格的命名规范,以及把合并队列当作关键基础设施来建设。评审带宽往往比生成代码的速度更早成为瓶颈。

对从业者的意义:CI 跑得多快,交付就能多快;会写测试、会把改动切小、会给开关起规范名字,是主干开发的基本功。对普通人的意义:你手机 App 里的新功能,很多早就随版本装好了,只是开关没打开——所以产品能“一键上线、一键关停”,而不必等你更新版本。具体工具的配置细节,以官方页面为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。