GitStat: 单文件 GIT 提交可视化工具
GitHub: github.com/wsyqn6/gits… | MIT 协议 | 开源免费
是什么
本地 Git 仓库提交历史浏览器 + 可视化分析面板。
扫描磁盘上的 .git 目录,解析 git log 数据,聚合为交互式图表。单个可执行文件,不联网,不存数据库。
亮点
单文件分发 — Go 单二进制,内嵌前端。下载解压即用。不要 Node.js、不要 Go、不要数据库、不要 Docker。一个文件覆盖 Windows / Linux / macOS。
全离线 — 不调 GitHub API,代码不出机器。适合内网、涉密项目、个人隐私敏感场景。
惰性加载 — 启动只扫目录找 .git,毫秒级。提交数据按需拉取,支持向前/向后增量补数据。首次请求触发扫描,之后只扫增量。
赛博朋克 UI — 暗色霓虹主题,ECharts 交互图表,CSS 变量主题化。无 UI 框架,无额外依赖。
中英文双语 — 内置中英文,UI 按钮一键切换,不设环境变量。
用法
gitstat serve # 扫当前目录
gitstat serve D:/workspace # 扫指定目录
gitstat serve .. --port 8080 # 自定义端口
启动后自动打开浏览器。
四个视图
仪表盘 — 当日提交数/增删行/活跃作者、本周趋势折线图、作者排行、仓库活跃度对比、每日详情表格。
分析中心 — 自定义时间范围(日/周/月/年/任意区间)。6 个 EChart 面板:提交趋势、代码变更分布、开发者排行榜、提交热力图(星期×小时)、时段分布、仓库雷达对比。
仓库详情 — 分支列表、语言分布(扩展名 + shebang 识别)、提交日历热力图、累积成长曲线、时段分布、标签分页、贡献者统计。
设置 — 切换扫描路径、一键 JSON 导出全量数据。
性能
- 二进制 ~8MB(压缩后更小)
- 启动 < 0.1 秒
- 内存 < 100MB(<= 50 仓库,每仓库最多缓存 5000 条提交)
- 前端代码分割 + 懒加载,图标组件按需载入
技术栈
- 后端:Go + chi(直接 exec git log,自定义分隔符解析)
- 前端:Vue 3 + Vite + ECharts(无 Vue Router / Pinia / vue-i18n)
- 存储:全局内存(sync.RWMutex,无数据库)
- 构建:
//go:embed嵌入前端产物到二进制 - CI:GitHub Actions 自动交叉编译 5 平台
下载
GitHub Releases: github.com/wsyqn6/gits…
选择对应平台压缩包,解压即可运行。