一个基于Golang的git log分析命令行工具,能够分析Git仓库的提交历史并提供详细的统计信息和AI驱动的分析。
- Help功能 - 完整的命令行帮助和使用说明
- 仓库路径参数 - 支持指定Git仓库路径,默认为当前目录("./")
- Git验证 - 自动验证Git是否安装,并通过Git命令获取日志
- 多维度统计 - 根据人员、时间等多个维度统计数据进行初步分析
- AI分析 - 从环境变量获取大模型配置,调用AI获取进一步分析
- 网页报告 - 生成美观的HTML报告,包含交互式图表
- 灵活配置 - 支持环境变量和命令行参数配置
从 Releases 页面 下载适合您系统的预编译版本:
- macOS:
git-log-analyzer-darwin-amd64.tar.gz(Intel) 或git-log-analyzer-darwin-arm64.tar.gz(Apple Silicon) - Linux:
git-log-analyzer-linux-amd64.tar.gz或git-log-analyzer-linux-arm64.tar.gz - Windows:
git-log-analyzer-windows-amd64.zip
# 下载并解压
tar -xzf git-log-analyzer-darwin-*.tar.gz
# 赋予执行权限
chmod +x git-log-analyzer-darwin-*
# 运行
./git-log-analyzer-darwin-* --help注意: macOS版本已通过Apple公证,首次运行时系统会自动验证。
# 下载并解压
tar -xzf git-log-analyzer-linux-*.tar.gz
# 赋予执行权限
chmod +x git-log-analyzer-linux-*
# 运行
./git-log-analyzer-linux-* --help- 下载
git-log-analyzer-windows-amd64.zip - 解压到任意目录
- 在命令提示符或PowerShell中运行
git-log-analyzer-windows-amd64.exe
- Go 1.21+
- Git 命令行工具
go mod tidy# 简单构建
go build -o git-log-analyzer
# 多平台构建(推荐)
./scripts/build.sh [version]项目配置了GitHub Actions工作流,支持:
- 多平台构建 (Linux, macOS, Windows)
- Apple代码签名和公证
- 自动发布到GitHub Releases
触发构建:
# 创建并推送标签
git tag v1.0.0
git push origin v1.0.0详细配置请参考 GITHUB_SECRETS.md
首先复制环境变量示例文件并根据需要配置:
cp env.sample .env
# 编辑 .env 文件,设置API密钥等配置# 分析当前目录的Git仓库(生成网页报告)
./git-log-analyzer
# 分析指定路径的Git仓库
./git-log-analyzer --repo /path/to/git/repository
# 只生成文本报告
./git-log-analyzer --web=false
# 显示帮助信息
./git-log-analyzer --help# 启用AI分析(需要配置环境变量)
./git-log-analyzer --ai
# 自定义输出目录
./git-log-analyzer --output-dir ./my-reports
# 将文本报告输出到文件
./git-log-analyzer --output report.txt
# 生成网页报告并自动打开浏览器
./git-log-analyzer --web --open
# 组合使用
./git-log-analyzer --repo /path/to/repo --ai --output text-report.txt --output-dir web-reports要使用AI分析功能,需要配置环境变量。复制 env.sample 为 .env 并设置:
# 必需 - API密钥
AI_API_KEY=sk-your-api-key
# 可选 - 自定义配置
AI_API_ENDPOINT=https://api.openai.com/v1/chat/completions
AI_MODEL=gpt-3.5-turbo
AI_MAX_TOKENS=2000
AI_TEMPERATURE=0.7
# 可选 - 报告配置
REPORT_OUTPUT_DIR=./analysis-reports
GENERATE_WEB_REPORT=true
AUTO_OPEN_BROWSER=false工具支持两种报告格式:
- 生成美观的HTML报告,包含交互式图表
- 文件:
index.html,styles.css,charts.js - 支持响应式设计,适配移动设备
- 传统的文本格式报告
- 适合命令行查看和自动化处理
# 设置API密钥
export AI_API_KEY="sk-your-openai-api-key"
# 运行完整分析
./git-log-analyzer --repo ~/my-project --ai --output detailed-report.txt工具会生成包含以下内容的分析报告:
- 交互式图表: 使用Chart.js创建的动态图表
- 响应式设计: 适配桌面和移动设备
- 现代UI: 美观的卡片式布局和渐变设计
- 数据可视化:
- 贡献者分布饼图
- 提交时间线图
- 小时活跃度柱状图
- 每周活跃度极坐标图
- 基础统计: 总提交数、活跃时间段、活跃天数等
- 贡献者分析: 按提交数排序,包含代码行数变化
- 时间模式分析: 最活跃的提交时间和周期模式
- 文件修改统计: 最常修改的文件和修改频率
- AI深度分析(可选): 开发模式、团队协作、改进建议
git-log-analyzer/
├── main.go # 程序入口
├── cmd/
│ └── root.go # 命令行界面
├── internal/
│ ├── git/
│ │ └── git.go # Git操作和日志解析
│ ├── analyzer/
│ │ └── analyzer.go # 统计分析逻辑
│ └── ai/
│ └── ai.go # AI分析集成
├── go.mod # Go模块定义
└── README.md # 项目说明
- Git相关功能:修改
internal/git/git.go - 分析算法:修改
internal/analyzer/analyzer.go - AI集成:修改
internal/ai/ai.go - 命令行参数:修改
cmd/root.go
# 运行测试
go test ./...
# 生成测试覆盖率报告
go test -cover ./...本项目采用MIT许可证。
欢迎提交Issue和Pull Request来改进这个工具!