Cursor 怎么自动生成 commit message?Git 功能全解
在 Cursor 里让 AI 写 commit message,只有一个动作:先把改动暂存(stage),然后点提交信息输入框里的星标(sparkle)图标。 Cursor 会根据你的 diff 和这个仓库的历史提交,生成一条信息填进去。
这篇按官方帮助中心的 Git 集成页,把 Cursor 在版本控制这一块加的东西讲全:生成提交信息、AI 解合并冲突、AI 提交署名、以及 Cursor Blame 这个容易被忽略的功能。
生成 commit message 的正确姿势
官方描述很短,但里面有两个前提值得展开。
前提一:必须先暂存。 星标图标是在提交信息输入框里的,而提交信息是针对暂存区的。没暂存任何东西的时候,它没有可以读的 diff。所以流程是:改代码 → 在源代码管理面板里把要提交的文件 stage 上 → 再点星标。
前提二:它读的不只是 diff,还有仓库历史。 官方原话是”based on your diff and repo history”。这条信息量很大——它会去参考你这个仓库过去的提交信息风格。实践上的含义是:
- 如果你的仓库一直用 Conventional Commits(
feat:、fix:这种前缀),生成的信息大概率会跟着这个格式走; - 如果你的仓库历史是一堆
update、fix bug、修改,那它学到的样板也就是这个水平; - 想让生成质量稳定,最有效的办法不是反复重生成,是让仓库前面几十条提交本身写得像样。
这也解释了一个常见困惑:“为什么同事那边生成得挺好,我这边生成得很水” —— 多半不是模型的差别,是仓库历史的差别。
如果你想强制某种提交信息规范,比 Prompt 更稳的做法是把规范写进项目规则,让它成为长期约束,写法见 Cursor Rules 最佳实践。
合并冲突交给 Agent
官方给的机制是:遇到合并冲突时,在冲突界面上点 Resolve in Chat,Agent 会分析冲突两侧并给出一个解决方案。
这个功能的价值在于它不是简单地”选 ours 或选 theirs”。冲突两侧往往都是有意义的改动,机械二选一会丢东西;Agent 至少能读懂两边各自在做什么,再提一个合并方案。
但要摆正预期——它给的是”提案”,不是”结论”。合并冲突是版本控制里出错代价最高的场景之一,改错了往往要到很久以后才发现。合理的用法是:让它先出方案,自己逐块看过再接受。Agent 的改动在合进去之前会经过哪些环节,可以参考 Cursor Agent Review 机制。
AI 提交署名:默认开着,可以关
这一条不少团队会在意。官方说明是:
当 Agent 创建提交或 PR 时,Cursor 会自动在提交信息里加一条 “Made with Cursor” 的 trailer(尾注)。 这个行为同时作用于 git 提交和通过 gh pr create 创建的 PR。
关键信息有三条:
- 署名默认是开启的。 不是你主动打开的,是默认行为;
- 个人可以在设置里关掉——官方给的位置是 Cursor 设置里的 Agent 分区下的 Attribution。官方同时提到这个设置在后续某个版本会挪到一个专门的 Git 与 PR 分区下,所以你如果在 Agent 分区里没找到,去 Git 相关的分区看看,以你装的版本实际界面为准;
- 企业管理员可以全局关闭,从管理后台的 Settings 里切换。这个全局设置覆盖个人设置,一旦关掉,整个组织的 Agent 提交和 PR 都不会带 trailer。
什么时候该关?两个典型场景:一是对外开源仓库、不希望提交历史里带工具标记;二是公司有提交信息格式的强校验(比如 CI 里有 commit lint),额外的 trailer 可能触发校验失败。
什么时候该留着?如果你在做的是”AI 参与度可追溯”这件事——审计、合规、或者只是团队内部想知道哪些代码是 AI 写的——这个 trailer 就是免费的元数据,别关。
Cursor Blame:标出哪几行是 AI 写的
这个功能知道的人不多,但对代码审查很有用。官方描述是:
Cursor Blame 追踪哪些代码是 AI 写的、哪些是人写的,它给你的 git 历史加标注,让你一眼看出某一行是不是 AI 生成的。
官方给的用途是三个:代码审查、审计、以及了解自己代码库里的”AI 占比”。
值得多想一层的是第三个。“这个仓库里有多大比例是 AI 写的”在很多团队里正在变成一个真实的管理问题——不是为了限制,而是为了知道哪些模块需要更严的人工复核。有了行级标注,这个问题才有数据可谈,不用靠猜。
具体的开启方式和用法,官方指向了独立的 Cursor Blame 参考文档,本文未取得该文档正文,不做步骤推断。
多工作区的 Git 上下文是隔离的
官方在同一页回答了一个实操问题:Agent 能跨多个工作区工作吗?
答案是每个打开的工作区有各自独立的 Agent 和 git 上下文,一个窗口里的 Agent 不会动另一个工作区的文件。
这条对同时开好几个项目的人很重要。它意味着:
- 你在 A 项目里跑着一个长任务,去 B 项目窗口干别的,两边不会互相污染;
- 反过来,你也不能指望在一个窗口里让 Agent 同时改两个仓库——那是两个上下文;
- 需要多个 Agent 并行推进时,机制见 Cursor 里多个 Agent 同时跑。
一套顺手的日常流程
把上面几块串成实际用法,大致是这样:
- 写完一段功能就暂存。别攒一大堆改动再一次性提交——diff 越杂,生成的提交信息越含糊,这是所有自动生成提交信息工具的共同软肋;
- 点星标生成,然后自己改一遍。生成的结果通常”格式对、细节浅”,把为什么这么改的那句话补上,这句是 AI 从 diff 里看不出来的;
- 遇到冲突先 Resolve in Chat 出方案,再逐块确认;
- 提交前留意有没有多出来的 trailer,如果你们的 CI 有提交信息校验,提前决定关还是留;
- 需要审查 AI 参与度的仓库,把 Blame 那条线也用上。
常见问题
为什么我没看到生成提交信息的星标图标? 先确认改动已经暂存。官方描述的前提是先 stage,再点提交信息输入框里的星标。
生成的提交信息能定格式吗? 官方说它参考你的 diff 和仓库历史。想稳定地约束格式,把规范写进项目规则比每次改 Prompt 更可靠。
“Made with Cursor” 这行怎么去掉? 个人在 Cursor 设置的 Agent(或后续版本的 Git 与 PR)分区下关闭 Attribution;企业管理员可以在管理后台全局关闭,且全局设置覆盖个人。
Agent 解决合并冲突可靠吗? 它给的是分析两侧后的提案。合并冲突改错代价高,建议逐块确认后再接受。
开两个窗口做两个项目,Agent 会串吗? 官方说每个工作区有独立的 Agent 和 git 上下文,一个窗口不影响另一个工作区的文件。
核实边界
本文事实依据为 2026-08-24 通过 curl 抓取的 Cursor 官方帮助中心 Git 集成页(https://cursor.com/help/integrations/git)。
没有核到、因而本文未写的部分:Cursor Blame 的具体开启步骤与界面(官方指向独立参考文档,本文未取得其正文,故只转述功能定位不写操作步骤);Attribution 设置迁移到新分区的确切版本号(官方页面写了版本号,但版本号属易变信息,本文只写”后续版本会挪位置”);生成提交信息时具体读取多少条历史提交、是否可配置(官方未说明);该功能对非 git 版本控制系统的支持情况(官方未提及)。本文作者没有 Cursor 账号,也未运行过该软件,全部描述来自官方文档文字,不含实测。
👉 想把 AI 参与下的工程规范一起立起来,看看 AI 编程实战体系课,或逛 AI 编程教程大全。