用途
Git Investigate 是一个 Git 历史调查技能,用于追踪代码变更、定位缺陷是在哪次提交中被引入,以及进行根因分析。它面向“代码考古”类问题,例如某段代码是谁写的、何时被修改、为什么被修改、修改过程中遗漏了什么。
主要能力
该技能围绕 Git 历史调查提供以下能力:
- 定位代码:根据文件与行号、函数名或关键词找到目标代码。
- 追溯作者:使用 git blame 确定某行代码的作者与提交。
- 追踪变更时间:使用 git log --follow 查看文件或代码的变更历史。
- 分析变更原因:结合提交信息与 PR 了解修改动机。
- 对比差异:使用 git diff 比较原始版本与问题版本,找出被遗漏的内容。
- 输出调查报告:报告包含调查目标、时间线、根因分析、引入提交的哈希与作者。
使用方式
该技能通过命令触发,支持三种定位方式:
- 指定具体行:
/git-investigate src/service/xxx.ts:123 - 指定函数名:
/git-investigate processToken - 指定关键词:
/git-investigate "error message"
工作流程为:定位代码 -> git blame -> 找到提交 -> 追踪历史 -> 分析变更 -> 输出报告。
调查框架将问题与方法对应起来:
- 谁写的?使用 git blame。
- 何时被修改?使用 git log --follow。
- 为什么被修改?查看提交信息与 PR。
- 遗漏了什么?使用 git diff 对比原始版本与问题版本。
适用场景
适用于以下情况:
- 追踪代码变更历史。
- 查找缺陷是在哪次提交中被引入。
- 进行根因分析。
- 回答“谁写了这行代码”“这行代码何时被修改”等问题。
不适用于以下情况:
- 代码审查(应使用 codex-review)。
- 功能开发(应使用 feature-dev)。
- 单纯阅读代码(应直接使用 Read)。
常见模式
该技能总结了若干常见问题模式及其症状与根因:
- 类型被移除:枚举值被删除,根因是假设不再需要。
- 条件被简化:if 条件被减少,根因是重构时遗漏。
- 重命名:部分未同步修改,根因是搜索替换不完整。
- 边界被忽略:只处理主流程,根因是未考虑边界情况。
输出与验证
输出为 Git Investigation Report,包含:
- 目标:文件或功能。
- 时间线:提交范围。
- 根因:分析结论。
- 引入者:提交哈希与作者。
验证标准包括:报告包含调查目标、作者信息、时间线、原始代码与问题代码;根因有清晰分析;修复建议具体且可操作。
限制
资料中未提供关于收费、价格、平台支持范围、性能效果等方面的信息。该技能的具体实现细节、依赖环境与安装方式暂未提供。