Skip to content
omeyang edited this page Jul 22, 2026 · 5 revisions

diffdim

按维度统计 git 变更:代码 / 测试代码 / 其他非代码 / 文件,各输出 新增·删除·修改(为 0 的格留空)。只保证 Go 与 Python 两种语言的识别。零依赖单二进制(纯 Rust 标准库),装上即是 git diffdim 子命令。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 diffdim · main...feature           2 个提交 · 7 个文件变更
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 维度                          新增        删除        修改
───────────────────────────────────────────────────────────
 代码                            +7          -1          ~1
 测试代码                        +3
 其他非代码                      +1          -3          ~1
───────────────────────────────────────────────────────────
 总计(行)                       +11          -4          ~2
 文件(个)                         2           1           4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

快速开始

# 从 Releases 下载对应平台二进制放入 PATH,或:
cargo install --git https://github.com/omeyang/diffdim

git diffdim main feature      # 比较两个分支
git diffdim -n 5              # 最近 5 个提交

文档导航

页面 内容
使用指南 全部命令形式、选项、范围语义
统计口径 维度划分规则、"修改行"的精确定义、边界情况
HTML 报告 --html 自包含报告:结构、双主题、配色依据
开发与发布 项目结构、测试、发布流程

为什么造这个轮子

git diff --stat / --numstat 只有增删两列、不区分测试与生成代码;tokei/cloc 统计的是仓库存量而非两个版本之间的变更。diffdim 补的正是"这次改动里,真正的业务代码动了多少"这个问题。

Clone this wiki locally