常见问题 (FAQ)
August 25, 2025 · View on GitHub
📋 目录
🛠️ 安装和环境问题
Q: 安装后运行 weekly-git-summary 提示"命令未找到"?
A: 请确保:
- 使用
-g参数进行全局安装:npm install -g weekly-git-summary - 检查 npm 全局安装路径是否在 PATH 中:
npm config get prefix - 重新加载终端或执行
source ~/.bashrc/source ~/.zshrc - 或者使用
npx weekly-git-summary无需全局安装
Q: 提示 Node.js 版本过低?
A: 该工具要求 Node.js ≥ 22.0.0,请:
- 使用
node --version检查当前版本 - 升级到最新的 Node.js 版本
- 推荐使用 nvm 管理 Node.js 版本:
nvm install node && nvm use node
Q: Windows 上提示 PowerShell 脚本执行被阻止?
A: 这是 PowerShell 的安全策略,请:
- 以管理员身份运行 PowerShell
- 执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - 或者修改为 Bypass 策略:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
🎯 使用相关问题
Q: 如何生成指定时间范围的报告?
A: 使用 --since 和 --until 参数:
weekly-git-summary --since 2023-01-01 --until 2023-12-31
Q: 如何只查看特定作者的提交?
A: 使用 --author 参数:
# 单个作者
weekly-git-summary --author "张三"
# 多个作者(OR 关系)
weekly-git-summary --author "张三" --author "李四" --author "王五"
# 使用邮箱
weekly-git-summary --author "zhangsan@example.com"
# 处理包含空格的作者名称
weekly-git-summary --author "John Doe" --author "Jane Smith"
Q: 如何扫描多个项目目录?
A: 工具会自动扫描指定目录下的所有 Git 仓库(最大深度 2 层):
weekly-git-summary --dir ~/projects
Q: 没有提交记录是怎么回事?
A: 可能的原因:
- 指定的时间范围内没有提交
- 目录中没有 Git 仓库
- 作者过滤条件太严格
- 当前用户没有访问 Git 仓库的权限
- 消息模式过滤条件太严格
Q: 如何使用时间范围预设?
A: 使用 --time-range 参数:
# 今天的提交
weekly-git-summary --time-range today
# 昨天的提交
weekly-git-summary --time-range yesterday
# 本周的提交
weekly-git-summary --time-range this-week
# 上周的提交
weekly-git-summary --time-range last-week
# 本月的提交
weekly-git-summary --time-range this-month
# 上月的提交
weekly-git-summary --time-range last-month
Q: 如何启用传统提交规范分析?
A: 使用 --conventional 参数:
# 启用传统提交规范分析
weekly-git-summary --conventional
# 结合时间范围使用
weekly-git-summary --conventional --time-range this-week
# 结合作者过滤使用
weekly-git-summary --conventional --author "张三"
启用后会显示提交类型分布和破坏性更改标识。
Q: 如何过滤特定类型的提交信息?
A: 使用 --message-pattern 参数(支持正则表达式):
# 只显示功能和修复相关的提交
weekly-git-summary --message-pattern "feat|fix"
# 过滤包含特定关键词的提交
weekly-git-summary --message-pattern "用户|登录|认证"
# 使用正则表达式过滤
weekly-git-summary --message-pattern "^(feat|fix)(\(.+\))?:"
# 结合传统提交规范使用
weekly-git-summary --message-pattern "feat" --conventional
📊 输出格式问题
Q: 如何导出为文件?
A: 使用输出重定向:
# 导出为 Markdown 文件
weekly-git-summary --md > report.md
# 导出为 JSON 文件
weekly-git-summary --json > report.json
# 导出为 HTML 文件
weekly-git-summary --html > report.html
Q: 终端显示乱码或格式不正确?
A: 请确保:
- 终端支持 UTF-8 编码
- 使用支持颜色的终端(如 iTerm2、Windows Terminal)
- 设置
LANG=zh_CN.UTF-8环境变量
Q: JSON 输出可以用于其他工具吗?
A: 是的,JSON 格式输出设计用于与其他工具集成:
# 使用 jq 处理 JSON 输出
weekly-git-summary --json | jq '.repositories[0].commits'
# 提取统计信息
weekly-git-summary --json --conventional | jq '.statistics'
# 获取提交类型分布
weekly-git-summary --json --conventional | jq '.statistics.typeDistribution'
# 导入到数据库或其他系统
weekly-git-summary --json | curl -X POST -d @- http://your-api.com/reports
Q: 如何查看详细的统计信息?
A: 工具会自动显示统计信息,包括:
- 总提交数量
- 参与人数和参与者列表
- 提交类型分布(启用
--conventional时)
# 查看基础统计
weekly-git-summary --time-range this-week
# 查看带类型分析的统计
weekly-git-summary --conventional --time-range this-week
# JSON 格式输出包含完整统计数据
weekly-git-summary --json --conventional
🔧 Git 相关问题
Q: 支持哪些 Git 仓库类型?
A: 支持所有标准 Git 仓库:
- 本地 Git 仓库
- GitHub、GitLab、Bitbucket 等远程仓库的本地克隆
- 裸仓库(bare repository)
- 工作树(worktree)
Q: SSH 和 HTTPS 的仓库 URL 如何处理?
A: 工具会自动转换 SSH URL 为 HTTPS 格式以便在报告中显示:
git@github.com:user/repo.git→https://github.com/user/repossh://git@gitlab.com/user/repo.git→https://gitlab.com/user/repo
Q: 如何处理私有仓库?
A: 确保:
- 已正确配置 Git 凭据
- 对私有仓库有读取权限
- SSH 密钥或访问令牌已正确设置
🌍 跨平台问题
Q: 在不同系统上输出结果不一致?
A: 虽然核心功能一致,但可能存在细微差异:
- Windows (PowerShell) 和 Unix (Bash) 的日期格式解析
- 文件路径分隔符差异
- 颜色显示支持差异
Q: macOS 上提示权限错误?
A: 可能需要:
- 给予终端完全磁盘访问权限
- 使用
sudo运行(不推荐) - 检查目录权限:
ls -la /path/to/directory
Q: Linux 上缺少依赖?
A: 确保安装了必要的工具:
# Ubuntu/Debian
sudo apt-get install git nodejs npm
# CentOS/RHEL
sudo yum install git nodejs npm
# Arch Linux
sudo pacman -S git nodejs npm
⚡ 性能和限制
Q: 扫描大型项目很慢怎么办?
A: 优化建议:
- 减少扫描深度(工具默认最大深度 2 层)
- 缩小时间范围:
--since 2023-01-01 --until 2023-01-31 - 指定具体项目目录而非根目录
- 使用
--author过滤特定作者
Q: 有扫描仓库数量限制吗?
A: 没有硬性限制,但建议:
- 单次扫描不超过 100 个仓库
- 超大项目可分批处理
- 使用 JSON 输出便于后续处理
Q: 内存占用过高?
A: 对于大型项目:
- 使用流式处理,避免一次性加载所有数据
- 分时间段生成报告
- 清理不必要的 Git 对象:
git gc
🔍 故障排除
Q: 提示"git 命令未找到"?
A: 请确保:
- 已安装 Git:
git --version - Git 在 PATH 环境变量中
- 重启终端或重新加载环境变量
Q: 脚本执行失败?
A: 排查步骤:
- 检查脚本文件是否存在
- 确认有执行权限:
chmod +x scripts/weekly-git-summary.sh - 查看详细错误信息
- 尝试手动执行脚本
Q: 某些仓库被跳过?
A: 可能原因:
- 不是有效的 Git 仓库
- 仓库损坏或不完整
- 权限不足
- 符号链接指向无效路径
Q: 输出中缺少某些提交?
A: 检查:
- 提交是否在指定时间范围内
- 提交者姓名/邮箱是否匹配过滤条件
- 是否是合并提交(merge commit)
- 本地仓库是否已同步最新更改
📞 获取帮助
Q: 如何报告问题或建议功能?
A: 请访问:
- GitHub Issues: https://github.com/yinzhenyu/weekly-git-summary/issues
- 查看已有问题: 搜索是否有相似问题
- 提供详细信息: 包括系统信息、错误消息、重现步骤
- 功能请求: 详细描述需求和使用场景
Q: 如何贡献代码?
A: 欢迎贡献!请:
- Fork 项目到自己的 GitHub
- 创建功能分支
- 添加测试用例
- 提交 Pull Request
- 参考 README.md 中的贡献指南
Q: 如何获取最新版本?
A: 检查更新:
# 检查当前版本
weekly-git-summary --version
# 更新到最新版本
npm update -g weekly-git-summary
# 或重新安装
npm uninstall -g weekly-git-summary
npm install -g weekly-git-summary
💡 提示: 如果您的问题没有在这里找到答案,请查看 GitHub Issues 或创建新的问题。我们会尽快回复!