可以并行,但前提是两层隔离同时成立:文件与模板层按目录或文件锁定归属,数据与配置层按字段锁定归属。只要有一层没锁住,后一次改动就会静默覆盖前一次,而且从页面表面往往看不出来。下面先讲这个结论成立的条件,再讲一个会让它失效的反例,最后给一个可以立刻执行的动作。
第一层是改动对象的粒度。同一个站点的改动可以粗分为三类:模板与样式文件、页面正文与结构化数据、站点级配置(重定向、robots、站点地图、追踪代码)。两个服务商如果都碰同一类文件,覆盖几乎必然发生,因为大多数交付方式是把本地版本整体上传或整体提交,而不是逐行合并。
第二层是版本入口的唯一性。即使分工明确,如果一方通过后台编辑器改内容、另一方通过代码仓库改模板,而两边都声称"只动自己那块",冲突仍会出现在共用字段上,例如页面标题、canonical、内链锚文本。这些字段通常同时被内容侧和技术侧视为自己的范围。
因此可行的分工不是按"谁负责技术、谁负责内容"划分,而是按可写路径划分:一方拥有模板目录与构建配置,另一方只拥有内容数据源(CMS 字段、结构化数据文件、内链表),并且双方都不直接在生产环境手改。
假设站点是静态生成或半静态结构:内容存在数据库或 Markdown 文件里,但页面标题、描述、面包屑由模板拼接生成。此时内容方在自己的数据源里改了标题字段,技术方同时改了模板里的标题拼接逻辑,两边都验证"我这边是对的",上线后却互相抵消——数据源的新标题被模板逻辑重新截断或覆盖,页面显示的还是旧值。
这个反例说明:当同一份可见输出由两个来源共同决定时,按文件划分归属是不够的,必须按最终输出字段划分归属。判断方法很简单:列出页面上每一个会变动的字段,标注它由哪个来源决定。如果某个字段的最终值由两处共同决定,它就必须指定唯一负责人,另一方只能提交需求,不能直接改。
另一个常见的失效场景是缓存与发布节奏。一方改完后看到的是缓存旧页,误以为没生效又改了一次;另一方在中间发布,把前者的改动带回旧版本。这不是权限问题,而是缺少发布窗口约定。样本小的时候靠沟通能糊过去,站点规模上去、页面数量变多之后,这类冲突会以"改了又好像没改"的形式反复出现。
具体动作分三步,顺序不能颠倒。
做完这一步的直接结果是:冲突从"上线后才发现"提前到"提交前就能判断"。下一步是把发布节奏固定下来,例如约定每周固定时间窗口合并,合并前各自拉取最新版本,合并后由一方统一发布并记录变更字段。这样做的代价是灵活性下降,收益是任何一次改动都能追溯到具体字段和具体负责人。
如果站点目前没有版本控制、没有独立的内容数据源、也没有可区分字段归属的配置结构,那么并行改动的成本会高于收益。此时更稳妥的做法是先让一方完成结构性整理(把共用字段收敛到单一来源、建立版本记录),再引入第二方。判断标准不是站点大小,而是是否能在改动前说清每个字段的唯一来源。说不清,就先别并行。