Git post-commit 钩子 + SQLite 提交索引工具。自动将每次提交的元数据(哈希值、作者、分支、仓库、主题)记录到本地 SQLite 数据库中,随后提供一个命令行接口(CLI),支持查询、列表展示、统计、删除和更新记录。 触发场景:管理 Git 钩子、跨仓库查询提交历史、定位某次提交所属的仓库、查看提交统计信息、将提交记录写入本地索引。 当用户提及“提交日志记录”、“提交索引”、“跨仓库查找提交”、“Git 钩子管理”,或希望以结构化方式查询其提交历史时(即使未明确指出该工具),请使
Git Log Tracker.是一项面向实际任务的技能,主要用于Author: Lee ShunEe.;Organization: KinemaClawWorkspace.;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
首次使用此 skill 前,必须先读取 references/ONBOARDING.md 完成环境配置。
references/ONBOARDING.md 采用交互式流程:
Agent 必须先询问用户使用意图(仅当前 repo / 多个 repo / 全局模式)
根据用户选择执行相应步骤,切勿自动执行全部命令
首次配置 → 读取 references/ONBOARDING.md,按 Step 0 询问用户后执行
环境不可用(命令不存在、依赖缺失、连接失败)→ 读取 references/ONBOARDING.md Troubleshooting 排查修复
配置完成后 → 直接使用下方 Run Commands
Git Log Tracker 在每次 git commit 后自动将 commit 元数据写入本地 SQLite 数据库。通过 CLI 可以跨仓库查询、统计、修改和删除 commit 记录。
数据存储在 ~/.commit-logs/index.db,配置文件在 ~/.commit-logs/config.toml。
所有命令通过 git-log-tracker 运行。
首次安装后初始化配置和数据库:
git-log-tracker setup
安装 hook 到指定 repo(之后每次 commit 自动记录):
git-log-tracker install /path/to/repo git-log-tracker install . # 当前 repo
检查 hook 状态:
git-log-tracker status /path/to/repo git-log-tracker status .
移除 hook:
git-log-tracker uninstall /path/to/repo
扫描目录中的 git 仓库:
git-log-tracker scan /path/to/directory # 扫描并列出仓库 git-log-tracker scan /path/to/directory --depth 3 # 控制扫描深度 git-log-tracker scan /path/to/directory --install-missing # 自动安装缺失 hook 的仓库 git-log-tracker scan /path/to/directory --interactive # 交互式选择安装 git-log-tracker scan /path/to/directory --exclude "*/temp/*" --exclude "*/.cache/*" # 排除路径
scan 输出示例:
Scanning D:modular_dev for git repositories (depth=5)... Found 15 repositories: +----------------------------------------------------+--------------+--------------------+ | Repo Path | Hook Status | Branches | +----------------------------------------------------+--------------+--------------------+ | D:modular_devkinema_skills | [OK] | main (3) | | D:modular_devother_project | [--] | master (1) | | D:modular_devlegacy_app | [--] | develop (5) | +----------------------------------------------------+--------------+--------------------+ Summary: 1 installed, 2 missing
全局模式(新 repo 自动带 hook):
git-log-tracker global # 启用 git-log-tracker global --off # 关闭
按 hash 查找(支持前缀匹配):
git-log-tracker find abc1234
find 输出示例:
commit abc1234def5678901234567890123456789012 author Leedate 2025-05-29T14:30:00+08:00 repo D:/modular_dev/task-tracker branch master subject test(frontend): Phase 4 完成
列出最近 commit:
git-log-tracker list # 最近 20 条 git-log-tracker list -n 50 # 最近 50 条 git-log-tracker list --repo task-tracker # 按仓库名筛选 git-log-tracker list --author lee@example.com # 按作者筛选 git-log-tracker list --since 2025-01-01 # 按日期筛选 git-log-tracker list --branch main # 按分支筛选 git-log-tracker list --label work # 按仓库标签筛选
list 输出为表格格式:HASH | DATE | AUTHOR | REPO | SUBJECT
统计信息:
git-log-tracker stats git-log-tracker stats --label work # 只统计带该标签的仓库
给仓库打仓库级标签(label),用于按"组"过滤查询(如 work / personal)。标签是 repo_path 的属性,改标签立即对该仓库全部历史 commit 生效。
git-log-tracker label add . work # 给当前仓库加 work 标签 git-log-tracker label add /path/to/repo work personal # 一次加多个标签 git-log-tracker label rm . work # 移除标签 git-log-tracker label list . # 查看某仓库的标签 git-log-tracker label list # 列出所有标签映射
标签存储在 ~/.commit-logs/labels.json,结构为 { "归一化repo_path": ["label1", ...] }。
手动记录某个 repo 的最新 commit:
git-log-tracker record . # 当前 repo git-log-tracker record /path/to/repo
删除记录:
git-log-tracker delete abc1234
更新记录字段(可编辑字段:branch, commit_subject, commit_body, repo_path, repo_name):
git-log-tracker update abc1234 branch main
重置数据目录:
git-log-tracker reinstall # 删除数据目录并重新初始化 git-log-tracker reinstall --keep-config # 只重置数据库,保留配置
编辑 ~/.commit-logs/config.toml 管理排除列表:
[hooks]
exclude = [
"/tmp/*",
# "/path/to/specific/repo",
]
[database]
path = "index.db"
安装后的系统结构:
~/.commit-logs/ # 数据目录(不含代码) ├── config.toml # 排除列表和数据库路径配置 ├── labels.json # 仓库级标签映射(repo_path -> [labels]) ├── index.db # SQLite 数据库 .git/hooks/post-commit # Hook 文件,调用 git-log-tracker hook
CLI 工具通过 uv tool install 安装到系统,不在 ~/.commit-logs 中存放代码。
commits(
id, commit_hash, short_hash, author_name, author_email, author_ts,
committer_name, committer_email, commit_subject, commit_body,
branch, repo_path, repo_name, parent_hashes, recorded_at
)
索引:commit_hash(UNIQUE), repo_path, author_email, recorded_at