2026 年 9 月 30 日,开发者 Yedhu 提出一个反潮流主张:在 AI 智能体全面代写代码的时代,工程师必须收回 Git 提交说明(Commit Description)的控制权,坚持亲自手写。这项提议看似是对微小工作流的执念,实则切中了当前智能体辅助开发中最隐蔽的工程信任危机。

当业界普遍争论 AI 生成代码的可读性时,提交历史这一底层工程资产正在被悄然污染。代码差异(Diff)本身无法推导架构动机,若放任智能体凭空推测改动原因,软件系统将陷入虚假归因的长期风险。

AI 编程工具在 Git 提交自主权上的三级光谱 GitHub Copilot 审查级 / Review-first 生成标题与描述草稿 依赖仓库指令规则管控 人工把关后合并提交 Cursor 便利级 / Diff-driven 面板基于暂存区一键生成 缺乏官方自定义 Prompt 常输出琐碎的文件级改动 Claude Code 全自主级 / Agent-first 终端自主测试并直接提交 强制注入共同作者签名 引发展开归属与越权争议

工具自主权分化引发管理脱节

当前主流 AI 辅助工具正以不同的哲学接管版本控制。GitHub Copilot 走的是相对保守的审查路线,在 GitHub.com 和 GitHub Desktop 中提供标题与描述生成,支持仓库级指令和规则集管控,核心权限仍留在人类审查环节。

主流辅助工具正以截然不同的激进策略分化版本控制自主权(示意图)
主流辅助工具正以截然不同的激进策略分化版本控制自主权(示意图)

Cursor 则选择牺牲控制精度换取 IDE 内的操作便利。开发者在版本管理面板中点击按钮,模型就会基于暂存区 diff 和提交历史生成说明。然而新版 Cursor Rules 无法可靠约束这一流程,且未提供官方自定义 Prompt 支持。多团队反馈该功能往往只列举琐碎的文件修改,遗漏高层架构意图,导致团队只能依赖遗留的 .cursorrules 临时方案或额外配置 commitlint 强制拦截。

走得最激进的是 Anthropic 的 Claude Code。它支持在终端完成代码审查、执行测试、暂存文件并直接调用 Git 提交。这种全自主工作流带来了极高效率,但其默认强制注入包含第三方邮箱的共同作者签名(Co-Authored-By: Claude ...),引发关于贡献归属混乱和隐私暴露的争议,团队最终在后续版本中允许将该属性置为空字符串以关闭标记。


无法推导意图让 AI 沦为剧场表演

开发者社区的广泛共识表明,单纯的代码 diff 根本不足以还原业务意图。如果缺乏工单系统或架构设计文档支撑,大语言模型只能基于表面改动展开事后推理。这种看似逻辑严谨实则缺乏事实依据的说明,在工程界被称为 AI 剧场。

模型凭空捏造的虚假动机导致后续系统故障排查陷入混乱(示意图)
模型凭空捏造的虚假动机导致后续系统故障排查陷入混乱(示意图)

最致命的盲区在于未书面化的临时决策。工程师经常会编写包含特定退出条件的过渡代码,例如明确注明此方案仅维持至底层服务迁移完成。这类退出机制通常不会存在于公开文档中,因为对当期研发人员而言过于显然。AI 无法感知这些隐形共识,只能凭空捏造一个听起来合理的性能或安全理由。

无法解释为何修改代码的人,本质上是在交付自己不理解的系统。

若由模型代劳,提交记录便充斥着虚构的动机。几个月后当系统发生故障,后继维护者查阅历史记录时,看到的将是与真实业务逻辑南辕北辙的虚假解释,排错成本呈指数级上升。

意图与事实解耦的现代提交架构 Git Commit 节点 定位:记录客观事实(What & Changes) 生成方式:由模型提取暂存区可观测变更 硬约束:严禁推测未经验证的业务动机 Pull Request / Issue 定位:沉淀决策意图(Why & Context) 维护方式:人类工程师手工编写或核验 核心价值:明确临时方案退出条件与背景

重建防线需要意图与事实彻底解耦

面对工具生态的急进渗透,单纯呼吁工程师自觉手写提交记录难以对抗自动化带来的生产力惯性。反方观点同样具有合理性:强制智能体生成提交说明,能够促使模型跳出局部语法细节展开机器自检,反向验证测试覆盖率并合理拆分混乱的提交。

工程团队通过双重物理隔离阻断未经人类验证的虚构动机(示意图)
工程团队通过双重物理隔离阻断未经人类验证的虚构动机(示意图)

成熟的技术团队正在探索一种意图与事实解耦的工程解法:

将底层 Commit 的职能收缩至可观测变更(What),允许辅助工具基于 diff 快速提炼具体的文件改动与函数调整,但严格禁止工具编造未证实的业务动机;真正的决策缘由(Why)则交由 Pull Request、架构文档或工单系统承载,由人类工程师把关录入。

  • 建议.在仓库中配置 commitlint 机械防御规则与 Git Hook 校验,并引入清晰的结构化元数据标记,明确区分由模型提炼的变更清单与人工签署的业务动机,阻止虚假归因渗入系统根基。