分享一个生成 Git 提交记录周报的 CLI 工具 - weekly-git-summary - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yinzhenyu
V2EX    分享创造

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

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

    分享一个生成 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  
       142 天前
    支持一波 方便汇总每周的工作了
    cooper2020
        2
    cooper2020  
       142 天前
    非常不错的想法。npm 不熟悉,如果容器化就好了:P
    94
        3
    94  
       142 天前
    终于不用自己写脚本汇总了,但是为什么我输出的汇总是一堆的 1 /dog
    ripperdev
        4
    ripperdev  
       142 天前
    2 楼+1 ,要是能提供类似 Go/Rust 的静态二进制文件就好了:P
    yinzhenyu
        5
    yinzhenyu  
    OP
       142 天前
    @valkyrjaE 谢谢,我也是同样不想写周报
    yinzhenyu
        6
    yinzhenyu  
    OP
       142 天前
    @cooper2020 后面可以考虑实现,现在可以在 release 里直接下载 shell 脚本使用 https://github.com/yinzhenyu-su/weekly-git-summary/releases/,windows 可以用 ps1 脚本,不过我没有 windows 电脑,后面也不是太想维护 ps 脚本
    yinzhenyu
        7
    yinzhenyu  
    OP
       142 天前
    @dfkjgklfdjg 可以提供一下输出日志吗,我排查一下
    yinzhenyu
        8
    yinzhenyu  
    OP
       142 天前
    @ripperdev 如果不用 nodejs 的话可以直接从 github 的 release 页面下载 shell 脚本使用
    94
        9
    94  
       142 天前
    @yinzhenyu #7 ,不是 OP 你的问题。是提交的人每次都打的是 “1” 这个 commit message 。
    94
        10
    94  
       142 天前
    @yinzhenyu 仓库文档中的预览截图丢了,应该是编译之后清空了 dist 目录?
    yinzhenyu
        11
    yinzhenyu  
    OP
       142 天前
    @dfkjgklfdjg 好吧,那就不是脚本能解决的了
    yinzhenyu
        12
    yinzhenyu  
    OP
       142 天前
    @dfkjgklfdjg 我改一下
    infoscope
        13
    infoscope  
       142 天前 via iPhone
    集成一下 AI 总结
    yinzhenyu
        14
    yinzhenyu  
    OP
       142 天前 via Android
    @infoscope 可以考虑
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2486 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 01:14 PVG 09:14 LAX 17:14 JFK 20:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86