PCMP Git Helper
在 Source Control(源代码管理)中,自动将最近一条 PCMP 需求号填充到 Git 提交框。
适用于 Cursor、VS Code、VSCodium、Windsurf 等基于 VS Code 的 IDE。
功能
- 切换到 Source Control 时,自动扫描当前分支的 Git 提交记录
- 查找最近一条 作者为本人 且 commit 消息 以
#975000 格式开头 的提交
- 若 Git 提交框为空,自动填充
#需求号 (需求号后带一个空格)
- 提交框已有内容时 不会覆盖
- 支持手动触发填充与调试日志
需求号格式
匹配 commit 消息 第一行 以 # + 数字 开头的格式,例如:
| 消息 |
是否匹配 |
#975000 修复登录问题 |
✅ |
#123456 |
✅ |
fix [#975000](https://github.com/your-name/pcmp-git-helper/issues/975000) 问题 |
❌(不在开头) |
[PCMP-975000] 修复 |
❌ |
安装
方式一:从 VSIX 安装(推荐日常使用)
# 1. 编译
npm install
npm run compile
# 2. 打包
npx @vscode/vsce package --no-dependencies
# 3. 在 IDE 中安装
# Ctrl+Shift+P → Extensions: Install from VSIX...
# 选择生成的 pcmp-git-helper-0.1.0.vsix
安装后执行 Reload Window 重载窗口。
方式二:开发调试
- 用 Cursor / VS Code 打开本项目
- 按 F5 启动 Extension Development Host
- 在新弹出的窗口中打开带 Git 仓库的项目进行测试
使用
自动填充
插件会在以下情况尝试自动填充(提交框为空时):
- 打开 Source Control 侧栏
- 切换 Git 分支
- 窗口重新获得焦点
- 切换活动编辑器(多仓库工作区)
填充成功后,状态栏会短暂显示:
PCMP: 已填充 [#975000](https://github.com/your-name/pcmp-git-helper/issues/975000)(分支 feature/xxx)
手动命令
| 命令 |
说明 |
PCMP: 填充需求号到 Git 提交框 |
立即扫描并填充 |
PCMP: 显示调试日志 |
打开输出面板查看详细日志 |
通过 Ctrl+Shift+P 命令面板搜索 PCMP 即可找到。
配置
在 IDE 设置中搜索 pcmp,或编辑 settings.json:
{
"pcmp.autoFillEnabled": true,
"pcmp.logMaxEntries": 100,
"pcmp.authorEmail": "",
"pcmp.authorName": ""
}
| 配置项 |
默认值 |
说明 |
pcmp.autoFillEnabled |
true |
是否启用自动填充 |
pcmp.logMaxEntries |
100 |
扫描最近 commit 的最大条数(10–500) |
pcmp.authorEmail |
"" |
覆盖 Git 作者邮箱,用于匹配「本人」的 commit |
pcmp.authorName |
"" |
覆盖 Git 作者姓名 |
作者匹配说明
插件默认使用仓库的 git config user.email / user.name(也会读取全局配置)来判断 commit 是否为本人提交。
若本机 Git 配置与 commit 中的作者信息不一致,请在设置中手动指定:
{
"pcmp.authorEmail": "your.name@company.com"
}
排查问题
1. 查看调试日志
Ctrl+Shift+P → PCMP: 显示调试日志
输出面板 PCMP Git Helper 会显示扫描过程,例如:
仓库: E:\Projects\my-app
分支: develop
匹配作者 email="xxx@company.com" name="张三"
扫描最近 32 条 commit
命中: a1b2c3d "#975000 修复登录" -> [#975000](https://github.com/your-name/pcmp-git-helper/issues/975000)
2. 手动触发测试
Ctrl+Shift+P → PCMP: 填充需求号到 Git 提交框
若自动填充不生效,手动命令可快速定位是「触发问题」还是「匹配问题」。
3. 常见问题
| 现象 |
可能原因 |
解决 |
| 完全没有填充 |
当前分支没有符合条件的 commit |
确认本分支上有本人提交的 #数字 格式 commit |
| 手动命令也无效 |
作者不匹配 |
设置 pcmp.authorEmail |
| 不自动但手动可以 |
触发时机问题 |
用手动命令,或切换分支 / 重开 SCM 侧栏 |
| 提交框没变化 |
框内已有内容 |
清空提交框后再试 |
| 插件无反应 |
未重载 / 未安装 |
F5 重新调试,或 Reload Window |
4. 本地 Git 自检
git log --oneline -20
git config user.email
git config user.name
确认最近 commit 中有你的作者信息,且消息以 #975000 这类格式开头。
开发
# 安装依赖
npm install
# 编译
npm run compile
# 监听文件变化
npm run watch
# 打包 VSIX
npm run package
项目结构
src/
extension.ts # 插件入口,触发逻辑
gitService.ts # Git API 封装,作者匹配与 commit 扫描
pcmpMatcher.ts # 需求号正则匹配
scmTrigger.ts # SCM 侧栏可见性监听
logger.ts # 输出面板日志
git.d.ts # Git 扩展 API 类型定义
兼容性
- 依赖 IDE 内置的 Git 扩展(
vscode.git),请确保 Git 扩展已启用
- 标准 VS Code Extension API,无 Cursor 专有依赖
- 最低 VS Code 引擎版本:
^1.85.0
License
MIT