| name | git-blame |
| description | 代码追溯专家 - 查找代码修改者、关联PR、获取改动背景。
触发词: 谁改的, 谁写的, blame, 追溯, 找作者, 这行代码, 提交记录, 谁提交的, PR, 代码历史
|
代码追溯专家
帮助定位代码修改者,获取改动背景,便于协作解决问题
执行声明规范
开始执行时
🔍 **正在执行: 代码追溯** (`#git-blame`)
✅ 已加载 Skill 指引
⭕ 当前步骤: 识别追溯目标
执行完成时
✅ **执行完成**: 代码追溯
参考来源:
- Skill: `#git-blame`
- 数据来源: [本地 Git / MCP DevOps]
产出物: 代码追溯报告
适用场景
- Debug 时需要找到问题代码的作者
- 想了解某段代码为什么这样写
- 需要找到相关 PR 查看讨论上下文
- 想知道某个文件最近被谁修改过
工作流程
步骤1: 识别追溯目标
↓
步骤2: 执行代码追溯
↓
步骤3: 获取关联 PR
↓
步骤4: 输出追溯报告
执行步骤
步骤1: 识别追溯目标
目标: 确定要追溯的代码位置
识别信息:
判断代码位置:
| 情况 | 处理方式 |
|---|
| 工作区内的文件 | 使用本地 git blame |
| 远程仓库文件 | 使用 mcp_azuredevops_list_commits |
| 用户提供代码片段 | 先搜索定位,再追溯 |
步骤2: 执行代码追溯
方式A: 本地 Git(工作区代码)
git blame -L <起始行>,<结束行> <文件路径>
git show <commit-hash> --stat
git log -1 --format="%H%n%an%n%ae%n%s%n%b" <commit-hash>
方式B: MCP DevOps(远程仓库)
调用: mcp_azuredevops_list_commits
参数:
- repositoryId: 仓库名称
- branchName: 分支名
- top: 返回数量
从返回结果提取:
author.name - 作者姓名
author.email - 作者邮箱
comment - 提交信息(含 PR 号)
files[].path - 修改的文件
files[].patch - 具体改动
步骤3: 获取关联 PR
从 commit message 提取 PR 号:
常见格式:
已合并 PR 236436: ...
Merged PR 236436: ...
(#236436)
获取 PR 详情:
调用: mcp_azuredevops_get_pull_request_comments
参数:
- repositoryId: 仓库名
- pullRequestId: PR 号
步骤4: 输出追溯报告
使用以下模板输出结果:
输出模板
## 🔍 代码追溯报告
### 📍 追溯目标
- **文件**: `path/to/file.cs`
- **行号**: L100-L110
- **代码片段**: [如有]
### 👤 修改者信息
| 字段 | 值 |
|------|-----|
| 作者 | [姓名] |
| 邮箱 | [email] |
| 时间 | [日期] |
| Commit | [hash 前8位] |
### 🔗 关联 PR
- **PR #[号码]**: [标题]
- **链接**: [DevOps 链接]
### 📝 改动说明
[commit message 或 PR 描述]
### 💬 PR 讨论摘要
[如果有评论]
### 📌 后续建议
- 联系 **[作者]** 了解改动背景
- 查看 PR 中的测试用例
- [其他建议]
常用命令速查
| 场景 | 命令 |
|---|
| 查看某行作者 | git blame -L 100,110 file.cs |
| 查看文件历史 | git log --oneline -10 -- file.cs |
| 查看提交详情 | git show <hash> |
| 查找包含关键词的提交 | git log --grep="关键词" --oneline |
| 查看某人的提交 | git log --author="姓名" --oneline |
相关 Skill
| Skill | 用途 |
|---|
#expert-index | 需要找对应模块专家时 |
注意事项
- 隐私: 仅展示工作相关信息,不泄露个人隐私
- 沟通: 找到作者后,建议先了解背景再提问
- 上下文: 关注 PR 讨论,可能有重要决策记录