Git Log Tracker (Commit Index & Query CLI)

🗂️ 跨仓库提交追踪与智能索引

开源 Git 提交管理工具,自动将多仓库 commit 元数据索引至本地 SQLite,支持跨仓库查询、统计与标签化管理。

收藏
1.6k
安装
693
版本
0.7.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Git Log Tracker 是一个基于 Python 开发的 Git 提交索引工具,通过安装 post-commit hook 实现自动化数据采集。每次提交后,系统自动提取 commit hash、作者信息、分支、仓库路径、提交主题等元数据,写入本地 SQLite 数据库。用户可通过 git-log-tracker CLI 跨仓库查询提交历史,支持按 hash 前缀模糊搜索、多维度筛选(仓库、作者、日期、分支、标签)及统计报表生成。

工具提供三种工作模式:单仓库模式、多仓库扫描模式、全局自动模式。通过 scan 命令可批量发现目录内的 Git 仓库并选择性安装 hook;global 模式则配置 Git 模板目录,使新建仓库自动继承提交追踪能力。标签系统允许为仓库打分组标记(如 work/personal),实现跨项目的逻辑聚合查询。

显著优点

自动化与无侵入性:基于标准 Git hook 机制,无需修改现有工作流,安装后即可静默运行。数据采集在本地完成,无网络依赖,保障隐私安全。

跨仓库查询能力:传统 git log 局限于单仓库,该工具通过中心化索引打破边界,适合管理数十个微服务仓库或分散的个人项目。

轻量与可移植:纯 Python 实现,通过 uv tool install 单命令安装,数据以 SQLite/JSON/TOML 等开放格式存储,易于备份和迁移。

灵活的标签体系:仓库级标签(label)支持动态分组,同一仓库的多条历史记录可随标签变更即时重新归类,无需修改历史数据。

潜在缺点与局限性

环境依赖门槛:需预装 Python 3.8+ 及 uv 包管理器,Windows 用户可能面临路径处理差异。首次配置涉及交互式流程,对纯 CLI 用户不够友好。

数据孤岛风险:索引仅存储于本地 ~/.commit-logs/,无内置同步机制,多设备协作时需手动迁移数据库。若误删数据目录,历史索引不可恢复。

功能边界清晰:专注元数据索引,不存储代码变更内容(diff),无法替代 git blame 或代码审查工具。删除/更新操作仅影响索引,不修改实际 Git 历史。

性能天花板:SQLite 在十万级记录下表现良好,但超大规模仓库集群(如千人团队的单体仓库)可能遭遇查询延迟,无分布式架构支持。

适合的目标群体

  • 多仓库维护者:同时维护个人项目、工作项目、开源贡献的技术人员,需要统一的提交历史视图。
  • 自由开发者/数字游民:跨设备开发时希望快速定位"上周在某个项目修复的 bug",却记不清具体仓库位置。
  • 小型团队技术负责人:需要统计成员提交活跃度、识别长期未更新的遗留仓库。
  • Git 重度用户:追求提交历史的数据化、可查询化,愿意用结构化数据替代 cd 遍历 + git log 的传统排查模式。

常规使用风险

数据持久性reinstall 命令默认删除整个数据目录,误操作将导致标签映射和配置丢失。建议定期备份 ~/.commit-logs/ 目录。

Hook 失效场景:若手动修改 .git/hooks/post-commit 或仓库重新初始化,hook 可能被覆盖,导致后续提交漏记。status 命令可用于主动巡检。

路径敏感性问题:标签存储使用"归一化 repo_path",跨操作系统(如 Windows 与 WSL 混用)可能因路径格式差异导致标签匹配失败。

版本兼容性:当前为 0.7.0 版本,数据库 schema 未来可能调整,升级前建议查阅 release note,避免旧版数据无法读取。

Git Log Tracker (Commit Index & Query CLI) 内容

references文件夹
scripts文件夹
src文件夹
migrations文件夹
versions文件夹
tests文件夹
dev-integration文件夹
src文件夹
unit文件夹
src文件夹
手动下载zip · 61.9 kB
ONBOARDING.mdtext/markdown
请选择文件