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
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

快速开始

# 一键安装(Linux x86_64/arm64、macOS Intel/Apple Silicon):
curl -fsSL https://raw.githubusercontent.com/omeyang/diffdim/main/install.sh | sh
# 或 cargo install --git https://github.com/omeyang/diffdim
# 或从 Releases 下载二进制放入 PATH(Windows 用 zip)

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

装好即是 git 插件:git 自动把 PATH 里的 git-diffdim 识别为 git diffdim 子命令,零配置。

文档导航

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

为什么造这个轮子

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

Clone this wiki locally