翻完两千次提交后我承认 - 让AI梳理功能演进,第一步不是喂代码
一个常见的失败场景
去年接手一个跑了四年的老项目时,我做的第一件事听起来很合理:把整个仓库打包扔给AI,让它“梳理这个项目的功能演进时间线”。
结果惨不忍睹。
AI返回了一份看似工整的总结:按时间列出了一些commit,给每个commit起了概括性的小标题,然后把README里的功能列表复述了一遍。问题在于——它梳理的不是“演进”,是“流水账”。哪些功能是核心主线的迭代?哪个版本是方向转折点?重构和功能新增混在一起,看不出节奏。更糟的是,它把几次merge进来的分支提交按作者时间排序,时间线直接错乱。
团队里另一个同事尝试了不同的做法:只让AI读release notes。这回更干脆——那个项目的release notes半年才更新一次,梳理出来的时间线和实际代码演进差了十万八千里。
这两次失败让我意识到一个问题:不是AI不行,是我们把“梳理演进时间线”当成了一个一步到位的生成任务。 它其实是一个分析任务,需要结构化的输入和分阶段的推理。
失败做法的三个共性
复盘下来,常见的错误姿势基本逃不出这三类:
一、数据喂太多,结构给太少。 几千条commit message直接粘贴过去,AI的注意力被无关细节稀释,只能挑表面的写。Git历史里真正有价值的是“变化模式”,而不是单条记录。
二、把原始输出当结论。 git log --oneline 的输出包含大量merge、chore、 typo修复类的噪音,不清洗就喂进去,AI的总结自然也是噪音。
三、一次性要全部答案。 “给我一份完整演进报告”这种指令,逼着AI在没有中间推理的情况下硬编。拆成几步问,质量会完全不同。
正确路径:三步喂料法
调整后的流程是这样的:
第一步:清洗并结构化数据。 在本地先把Git历史处理成AI容易消化的格式。核心命令:
git log --no-merges --pretty=format:"%ad|%s" --date=short \
| grep -v -E "^(.*\|)?(chore|typo|fix typo|bump)" > git_history.txt去掉merge提交、过滤噪音,按日期|提交说明的格式输出。如果是按里程碑梳理,可以加--grep按tag或关键字分段提取,每段单独保存。
第二步:分阶段提问。 先让AI按时间段聚类,识别每个阶段的功能主题;再让它对比相邻阶段,找出“转折点”——比如某类提交从占30%降到接近零,通常意味着功能被替代或放弃。这些模式单靠人眼翻log很难看出来。
第三步:让它自证。 对每个结论,要求AI标注依据的提交日期和条目。没有依据的结论一律标“推测”。这一步能拦住大部分幻觉。
可复制的提示词模板
你是一位资深技术分析师。我会提供一份项目的Git提交历史,
格式为「日期|提交说明」,已过滤merge和杂项提交。
请完成以下分析:
1. 将提交按功能主题聚类(如:认证模块、支付流程、性能优化),
每个主题列出涉及的提交数量和时间跨度;
2. 按季度划分阶段,概括每个阶段的重心,并指出重心如何转移;
3. 标记3-5个关键转折点(新模块首次出现、某类提交突然增多
或消失),每个转折点引用具体日期和提交说明作为依据;
4. 输出一份时间线表格:阶段 | 时间范围 | 核心变更 | 依据提交数。
要求:
- 所有结论必须能追溯到提供的提交记录,无法追溯的标注[推测];
- 不要美化或脑补未体现的意图;
- 如果数据太短或太稀疏,直接说明无法分析,不要硬编。前后对比
用AI之前(手动翻): 我梳理那个四年老项目的演进脉络,断断续续花了三个工作日,产出的时间线文档还漏掉了两次重要的架构转向——因为它们藏在几十条不起眼的重命名提交里。给新同事做项目交接时,我讲的内容自己都没十足把握。
用AI之后(三步法): 清洗数据加三轮提问,半天内拿到一份带依据的演进时间线。AI发现的两个转折点是我当初漏掉的:一次是缓存层提交在某个月集中出现后彻底消失(后来确认是方案被推翻),一次是测试类提交占比翻倍(对应团队开始认真补测试基建)。交接文档从“我凭印象讲”变成了“每条结论有日期可查”。
时间不是最关键的。最关键的是产出的可信度结构变了:人工总结靠记忆和印象,AI分阶段分析的产出自带证据链,可以复核、可以纠错。
几点补充建议
- commit message 质量差的仓库,先用AI归类再分析。 一堆"fix""update"式的历史,可以先让AI按文件路径变化辅助聚类,信息量会比纯文本高。
- 大型仓库分段处理。 按年份或tag切分历史,分批分析后让AI合并,比一次喂全量效果好得多。
- 结论要人工抽查。 抽5-10个关键节点去仓库里核实,这一步不能省——AI的溯源标注本身也可能出错。
如果你在寻找适合这类结构化分析任务的模型资源,可以看看 Thistoken.ai,它提供多模型的统一接入,按任务特点切换模型做历史分析这类工作流比较方便,具体以官网价格页为准:https://api.thistoken.ai/register
---
不想折腾多家供应商的接入差异?在 https://api.thistoken.ai/register 注册,用一个 base_url 调用所有模型。