V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yinzhenyu
V2EX  ›  分享创造

分享一个生成 Git 提交记录周报的 CLI 工具 - weekly-git-summary

  •  
  •   yinzhenyu · 65 天前 · 1557 次点击
    这是一个创建于 65 天前的主题,其中的信息可能已经有所发展或是发生改变。

    分享一个生成 Git 提交记录周报的 CLI 工具 - weekly-git-summary

    最近开发了一个 CLI 工具,专门用来生成 Git 提交记录的周报汇总,特别适合需要定期汇报工作进展的开发者。

    主要功能

    • 自动扫描 Git 仓库 - 支持多仓库扫描,最大深度 2 层
    • 多种输出格式 - 支持彩色终端、JSON 、Markdown 、HTML 格式
    • 灵活的时间范围 - 可以指定任意时间段,默认本周
    • 跨平台支持 - Windows/macOS/Linux 都可用
    • 零配置使用 - 开箱即用

    使用场景

    • 周报/月报生成
    • 项目进展汇总
    • 代码 review 准备
    • 团队工作统计

    快速开始

    # 全局安装
    npm install -g weekly-git-summary
    
    # 或直接使用(推荐)
    npx weekly-git-summary
    
    # 常用命令
    npx weekly-git-summary --dir ~/projects --since 2023-01-01 --until 2023-01-31
    npx weekly-git-summary --author "张三" --md
    npx weekly-git-summary --json
    

    输出示例

    工作内容 Git 提交记录汇总
    
    统计时间范围: 2023-06-26 到 2023-07-02
    搜索目录: .
    
    📦 my-project (github.com/user/my-project)
    
    📅 2023-07-02
      • feat: 添加用户认证功能 (作者: 张三, hash: abc123)
      • fix: 修复登录页面样式问题 (作者: 李四, hash: def456)
    
    📅 2023-07-01
      • docs: 更新 API 文档 (作者: 王五, hash: ghi789)
    

    主要特性

    • 智能仓库扫描 - 自动发现子目录中的 Git 仓库
    • 多种输出格式 - 终端彩色输出、JSON 、Markdown 、HTML
    • 作者过滤 - 可以只显示特定作者的提交
    • 时间范围灵活 - 支持自定义开始和结束日期
    • Web 可视化 - 还包含一个漂亮的 Web 界面

    技术栈

    • TypeScript + Node.js
    • 跨平台架构(自动选择 Bash/PowerShell/Node.js 实现)
    • 使用 Bun 构建
    • 完整的测试覆盖

    项目地址: https://www.npmjs.com/package/weekly-git-summary

    有类似需求的朋友可以试试,欢迎反馈和建议!

    14 条回复    2025-07-10 09:04:46 +08:00
    valkyrjaE
        1
    valkyrjaE  
       65 天前
    支持一波 方便汇总每周的工作了
    cooper2020
        2
    cooper2020  
       65 天前
    非常不错的想法。npm 不熟悉,如果容器化就好了:P
    dfkjgklfdjg
        3
    dfkjgklfdjg  
       65 天前
    终于不用自己写脚本汇总了,但是为什么我输出的汇总是一堆的 1 /dog
    ripperdev
        4
    ripperdev  
       65 天前
    2 楼+1 ,要是能提供类似 Go/Rust 的静态二进制文件就好了:P
    yinzhenyu
        5
    yinzhenyu  
    OP
       65 天前
    @valkyrjaE 谢谢,我也是同样不想写周报
    yinzhenyu
        6
    yinzhenyu  
    OP
       65 天前
    @cooper2020 后面可以考虑实现,现在可以在 release 里直接下载 shell 脚本使用 https://github.com/yinzhenyu-su/weekly-git-summary/releases/,windows 可以用 ps1 脚本,不过我没有 windows 电脑,后面也不是太想维护 ps 脚本
    yinzhenyu
        7
    yinzhenyu  
    OP
       65 天前
    @dfkjgklfdjg 可以提供一下输出日志吗,我排查一下
    yinzhenyu
        8
    yinzhenyu  
    OP
       65 天前
    @ripperdev 如果不用 nodejs 的话可以直接从 github 的 release 页面下载 shell 脚本使用
    dfkjgklfdjg
        9
    dfkjgklfdjg  
       65 天前
    @yinzhenyu #7 ,不是 OP 你的问题。是提交的人每次都打的是 “1” 这个 commit message 。
    dfkjgklfdjg
        10
    dfkjgklfdjg  
       65 天前
    @yinzhenyu 仓库文档中的预览截图丢了,应该是编译之后清空了 dist 目录?
    yinzhenyu
        11
    yinzhenyu  
    OP
       65 天前
    @dfkjgklfdjg 🤣 好吧,那就不是脚本能解决的了
    yinzhenyu
        12
    yinzhenyu  
    OP
       65 天前
    @dfkjgklfdjg 我改一下
    infoscope
        13
    infoscope  
       65 天前 via iPhone
    集成一下 AI 总结
    yinzhenyu
        14
    yinzhenyu  
    OP
       64 天前 via Android
    @infoscope 可以考虑
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2688 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:29 · PVG 20:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.