# git-counter
**Repository Path**: binbin0915_admin/git-counter
## Basic Information
- **Project Name**: git-counter
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2025-11-06
- **Last Updated**: 2025-11-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 📊 Git 代码统计工具
**一个功能强大、简单易用的 Git 代码贡献统计工具**
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://github.com)
[功能特性](#-核心特性) • [快速开始](#-快速开始) • [使用场景](#-使用场景) • [功能演示](#-功能演示) • [文档](#-文档)
---
## 🎯 解决的痛点
在实际开发中,你是否遇到过这些问题?
- ❓ **绩效考核**:需要统计个人或团队的代码贡献量,证明工作成果
- ❓ **项目评估**:想知道每个开发者在项目中的真实贡献比例
- ❓ **代码审查**:需要快速了解某个开发者写了多少代码,质量如何
- ❓ **多账户管理**:同一个人使用不同的 Git 账户提交,统计分散
- ❓ **报告生成**:需要生成专业的统计报告给领导或客户
- ❓ **代码质量**:想知道代码是一次成型还是经历了大量重构
**本工具一站式解决以上所有问题!** 🎉
---
## ✨ 核心特性
### 🖥️ 双模式支持
- **GUI 图形界面** - 点点鼠标就能用,零门槛(推荐)
- **命令行模式** - 适合自动化脚本和批处理
### 👥 灵活的用户配置
- **自动检测** - 读取仓库本地 Git 配置
- **手动指定** - 支持指定任意用户名/邮箱
- **多账户统计** - 一次性统计多个账户(团队协作必备)
- **分账户模式** - 每个账户单独统计,自动对比贡献
### 📈 双重统计维度
1. **累计工作量** - 基于 `git diff`,统计历史提交的代码变更量
2. **当前代码量** - 基于 `git blame`,统计当前仓库中你真正拥有的代码行数
3. **工作效率比** - 自动计算 `累计工作量 / 当前代码量`,评估代码质量
> **效率比解读:**
> - **> 150%**: 经历大量重构和优化(高质量)
> - **110-150%**: 适度重构,代码稳定
> - **90-110%**: 一次成型,修改少
> - **< 90%**: 可能改写了很多别人的代码
### 🎨 精美的报告导出
- **HTML 报告** - 可视化图表(饼图、对比表),专业美观
- **Excel 报告** - 多工作表(汇总、详情、分账户、对比),数据详尽
- **文本报告** - 控制台直接查看,快速预览
### 🧠 智能分析
- **自动排除注释** - 支持 20+ 种编程语言的注释语法
- **前后端分类** - 自动识别文件类型(前端/后端/其他)
- **文件级统计** - 每个文件的详细代码量、排行榜
- **智能缓存** - 统计结果自动缓存,大幅提升二次分析速度
### ⚡ 性能优化
- **增量分析** - 缓存机制,避免重复统计
- **多线程 GUI** - 统计时界面不卡顿
- **智能验证** - 自动检测仓库变化,缓存失效自动提示
---
## 🚀 快速开始
### 方式一:使用打包好的 EXE(推荐,无需 Python 环境)
1. 下载 [最新版本](https://github.com/你的用户名/git-counter/releases)
2. 双击 `Git代码统计工具.exe`
3. 选择仓库 → 开始统计 → 导出报告
**就是这么简单!** 🎉
### 方式二:从源码运行
**1. 克隆仓库**
```bash
git clone https://github.com/你的用户名/git-counter.git
cd git-counter
```
**2. 安装依赖**
```bash
# 推荐使用虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
```
**3. 启动工具**
```bash
# GUI 版本(推荐)
python git_counter_gui.py
# 命令行版本
python git_counter.py /path/to/your/repo
```
---
## 💡 使用场景
### 场景 1️⃣:个人绩效统计
**问题**:年终考核,需要证明自己这一年的代码贡献量
**解决方案**:
1. 打开工具,选择公司项目仓库
2. 确认自动检测的账户正确(或手动输入)
3. 点击"开始统计"
4. 导出 **HTML 报告**,附在绩效邮件中 ✅
**结果**:一份专业的可视化报告,清晰展示代码量、前后端占比、文件贡献 TOP 10
---
### 场景 2️⃣:团队贡献对比
**问题**:项目经理想知道团队每个人的贡献比例
**解决方案**:
1. 手动输入所有团队成员的 Git 账户(用逗号分隔)
2. 选择 **"详细模式"**
3. 点击"开始统计"
4. 导出 **Excel 报告**,查看"对比"工作表 ✅
**结果**:一张对比表 + 饼图,直观展示每个人的贡献占比
---
### 场景 3️⃣:代码质量评估
**问题**:想知道代码是否经历了大量重构,质量如何
**解决方案**:
1. 统计完成后,查看 **"工作效率比"**
2. 比对"累计工作量"和"当前代码量"
**解读**:
- 效率比 **200%**:累计写了 20000 行,但当前只有 10000 行 → 经历了大量优化重构 🎖️
- 效率比 **100%**:累计写了 10000 行,当前也是 10000 行 → 一次成型,很稳定 👍
- 效率比 **50%**:累计写了 5000 行,但当前拥有 10000 行 → 可能改写了别人的代码 🤔
---
### 场景 4️⃣:多账户合并统计
**问题**:同一个人使用了多个 Git 账户(公司邮箱 + 个人邮箱),统计分散
**解决方案**:
1. 在"用户名"输入框输入:`zhangsan, zhang.san`
2. 在"邮箱"输入框输入:`zhangsan@company.com, zhangsan@gmail.com`
3. 选择 **"汇总模式"**(合并统计)
4. 点击"开始统计" ✅
**结果**:所有账户的代码量自动合并,统一统计
---
## 📸 功能演示
### GUI 主界面
```
┌─────────────────────────────────────────┐
│ 📊 Git 代码统计工具 │
├─────────────────────────────────────────┤
│ 📁 选择 Git 仓库 │
│ [浏览...] D:\projects\my-project │
│ │
│ 👤 Git 用户信息 │
│ 检测到: 张三 │
│ │
│ 🔧 用户配置(可选) │
│ 用户名: [zhangsan, lisi] │
│ 邮 箱: [zhangsan@company.com] │
│ 统计模式: ⚪ 汇总统计 🔘 详细模式 │
│ │
│ 📦 缓存状态 │
│ ✓ 发现可用缓存(23 分钟前) │
│ [从缓存加载] [清理所有缓存] │
│ │
│ [🚀 开始统计] │
│ │
│ 📊 统计结果 │
│ 前端: 12,543 行 | 后端: 23,867 行 │
│ 当前拥有: 30,120 行 | 效率比: 121% │
│ │
│ [导出 HTML] [导出 Excel] │
└─────────────────────────────────────────┘
```
### HTML 报告示例
- **汇总卡片**: 总代码行数、前后端占比、工作效率比
- **详细统计**: 新增行数、删除行数、当前拥有行数
- **文件 TOP 10**: 贡献最多的文件列表
- **多账户对比**: 饼图 + 对比表(详细模式)
---
## 📚 文档
- [📖 使用指南](使用指南.md) - 详细的功能说明和操作步骤
- [🔧 开发文档](开发文档.md) - 技术实现原理和代码结构
- [📐 统计原理](STATISTICS_PRINCIPLE.md) - Git diff 和 blame 的统计逻辑
- [💾 EXE 使用说明](EXE使用说明.md) - 打包版本的使用指南
---
## 🛠️ 技术栈
- **核心**: Python 3.7+
- **GUI**: Tkinter(标准库,无需额外安装)
- **Git 操作**: GitPython
- **Excel 导出**: openpyxl
- **打包工具**: PyInstaller
---
## 📦 打包为 EXE
如果你想自己打包:
```bash
# 确保在虚拟环境中
.\build.bat
```
生成的 EXE 位于 `dist/Git代码统计工具.exe`,可以在任何 Windows 10+ 电脑上直接运行,无需 Python 环境。
---
## 🤝 贡献指南
欢迎贡献代码、报告 Bug、提出建议!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交修改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
---
## 📝 更新日志
### v2.3.0 (2025-11-03)
- ✨ 新增:缓存机制,大幅提升统计速度
- ✨ 新增:缓存智能验证(检测新提交、分支切换等)
- 🐛 修复:打包 EXE 时依赖缺失问题
- 🔧 优化:缓存目录移至用户主目录,支持跨目录访问
### v2.2.0 (2025-10-28)
- ✨ 新增:多账户统计功能
- ✨ 新增:详细模式(分账户统计 + 对比)
- ✨ 新增:HTML 报告支持多账户对比(饼图 + 表格)
- ✨ 新增:Excel 多工作表导出(汇总、文件、分账户、对比)
- 🗑️ 移除:CSV 导出(Excel 已足够)
### v2.1.0 (2025-10-20)
- ✨ 新增:当前代码量统计(基于 git blame)
- ✨ 新增:工作效率比计算
- 🔧 优化:HTML 报告新增效率比展示
### v2.0.0 (2025-10-15)
- ✨ 新增:GUI 图形界面
- ✨ 新增:手动指定用户功能
- 🔧 优化:支持只配置用户名或只配置邮箱
- 🐛 修复:GitLab 私有部署兼容性问题
### v1.0.0 (2025-10-01)
- 🎉 首次发布
- ✅ 命令行版本
- ✅ HTML/Excel/CSV 导出
- ✅ 前后端分类
- ✅ 自动排除注释
---
## ⭐ Star History
如果这个工具对你有帮助,请给个 Star ⭐ 支持一下!
[](https://star-history.com/#你的用户名/git-counter&Date)
---
## 📄 许可证
[MIT License](LICENSE) © 2025
---
## 🙏 致谢
感谢所有使用本工具并提供反馈的开发者!
---
**如果觉得不错,请点个 Star ⭐**
