lucasdevco/gitview

GitHub: lucasdevco/gitview

gitview 是一款本地运行的 Git 仓库分析工具,将提交历史、代码热点、所有权分布和函数演进等信息以 Web 界面呈现,帮助开发者理解项目脉络并辅助维护决策。

Stars: 0 | Forks: 0

# gitview [English](./README.md) | [简体中文](./README.zh-CN.md) 探索任何本地 Git 仓库的贡献历史、代码热点、所有权及函数演进。仅需单一二进制文件,无需账户,所有数据均在本地处理。 ## 为什么使用 gitview? Git 包含的不仅仅是一份提交列表。它可以帮助解答实际的维护问题: - 谁最了解代码库的这一部分? - 哪些文件经常变动并存在集中的所有权风险? - 是什么导致了某个月份活动的激增? - 某个函数是如何演进的?哪些提交塑造了它? - 维护者或新贡献者应该从哪里开始阅读代码? gitview 将本地 Git 历史转化为一个专注的 Web 界面。它的设计初衷是为了理解和维护项目,而非用于对开发者的个人绩效进行排名。 ## 功能 - **仓库概览** — 提交、贡献者、新增、删除、代码变动、月度趋势以及近期活动。 - **贡献者详情** — 活动时间线、主要路径,以及每位贡献者历史背后的提交。 - **文件热点** — 基于变更频率和代码变动的显式评分,查找频繁变更的文件。 - **代码所有权** — 审查历史所有者、近期维护者、贡献份额以及估算的巴士因子。 - **函数历史** — 浏览函数、复杂度、热点、贡献者,以及跨 Go、JavaScript/TypeScript、Python、Java 和 Rust 语言的推测性变更历史。 - **分支与提交** — 审查分支状态、工作区变更、提交元数据以及差异。 - **版本比较** — 跨总计、贡献者、文件和提交比较两个 Git 版本。 - **月度解释** — 通过推动活动变化的贡献者、路径和提交来解释活动的变动。 - **精准过滤** — 按作者日期和仓库路径缩小分析范围;过滤器会被保留在 URL 中。 - **提供英文和简体中文界面**。 ## 快速开始 ### 前置条件 - Go 1.26+ - Node.js 20.19+ 或 22.12+ - Git - 用于 Tree-sitter Go 绑定的 C 编译器 ### 从源码构建 ``` git clone https://github.com/lucasdevco/gitview.git cd gitview cd frontend && npm ci && cd .. make build ``` `make build` 会编译 React 前端,将其嵌入到 Go 二进制文件中,并生成 `./gitview`。 ### 分析仓库 ``` # 分析当前 repository ./gitview serve # 分析另一个本地 repository ./gitview serve /path/to/repository # 使用不同的 port ./gitview serve --port 9090 /path/to/repository ``` 打开 [http://127.0.0.1:8080](http://127.0.0.1:8080)。传入 `--port 0` 可让操作系统自动选择一个可用端口。 gitview 有意仅监听本地回环地址。它不提供 `--host` 选项。 ## 工作原理 gitview 通过系统 Git 可执行文件读取仓库元数据和历史记录,在内存中计算分析结果,并从同一个二进制文件中提供嵌入的 React 应用。 - 仓库代码、hooks 和构建脚本不会被执行。 - 无需账户或外部服务。 - 仓库数据完全保留在本地机器上。 - 分析结果会区分直接的 Git 事实与推导或近似指标。 ## 当前限制 - 函数级分析支持 Go、JavaScript/TypeScript、Python、Java 和 Rust;其他语言将回退到文件级分析。 - 函数历史标记为“推测性”;移动、重命名和边界变更可能无法被精确追踪。 - 分析重点在于可从所选分支或版本到达的历史记录。 - 目前尚无持久化索引、后台监视器、多仓库模式或 GitHub/GitLab 集成。 - 暂不支持 JSON/CSV 导出和静态报告。 请查看 [路线图](./docs/roadmap.md) 了解计划中的工作。 ## 开发 在本地开发时分别运行后端和前端: ``` # Terminal 1:启动 Go API server go run ./cmd/gitview serve /path/to/repository # Terminal 2:启动 Vite,将 /api 代理到 127.0.0.1:8080 cd frontend npm run dev ``` 要在源码变更后自动重新构建: ``` make watch ``` 实用的检查命令: ``` make test make check ``` ## 项目结构 ``` cmd/gitview/ CLI entry point and server lifecycle internal/gitrepo/ System Git adapter internal/overview/ Repository, contributor, file, ownership, and comparison analysis internal/function/ Tree-sitter function parsing and history analysis internal/server/ Local HTTP API and SPA delivery internal/web/ Embedded frontend assets and backend-only fallback frontend/ React, TypeScript, Vite, Tailwind CSS, and shadcn/ui application docs/ Product requirements, metric definitions, architecture, and roadmap ``` ## 文档 - [文档索引](./docs/README.md) - [产品需求](./docs/product-requirements.md) - [指标定义](./docs/metrics.md) - [技术设计](./docs/technical-design.md) - [UI 交互](./docs/ui-interaction.md) - [路线图](./docs/roadmap.md) - [开放问题与决策](./docs/open-questions.md) ## 致谢 产品结构和本地优先的呈现方式受到了 [agentsview](https://github.com/kenn-io/agentsview) 的启发。
标签:Git, Mutation, 代码分析, 凭证管理, 可视化, 日志审计, 网络安全研究, 自动化攻击