GitStat: 单文件 GIT 提交可视化工具

0 阅读2分钟

GitStat: 单文件 GIT 提交可视化工具

GitHub: github.com/wsyqn6/gits… | MIT 协议 | 开源免费


dash1.webp

是什么

本地 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     # 自定义端口

启动后自动打开浏览器。

四个视图

仪表盘 — 当日提交数/增删行/活跃作者、本周趋势折线图、作者排行、仓库活跃度对比、每日详情表格。

dash2.webp 分析中心 — 自定义时间范围(日/周/月/年/任意区间)。6 个 EChart 面板:提交趋势、代码变更分布、开发者排行榜、提交热力图(星期×小时)、时段分布、仓库雷达对比。

analy1.png 仓库详情 — 分支列表、语言分布(扩展名 + shebang 识别)、提交日历热力图、累积成长曲线、时段分布、标签分页、贡献者统计。

repo1.png

repo2.png 设置 — 切换扫描路径、一键 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…

选择对应平台压缩包,解压即可运行。