1 个不稳定版本
0.1.0 | 2023 年 10 月 19 日 |
---|
#578 在 机器学习
100KB
1K SLoC
Git 统计
从 Git 仓库收集提交并以舒适的方式呈现统计信息。
功能
-
每个用户的提交统计,包括以下信息维度。
- 提交数量
- 变更文件数量
- 插入数量
- 删除数量
- 变更行数(插入 + 删除)
统计结果将排除合并,并且不会包括被标记为重命名或移动的修改。您可以在之上指定一个
PATHSPEC
来进行更精确的匹配。
安装
克隆仓库
git clone https://github.com/hyzmm/git-statistics
cd git-statistics
安装 CLI
cargo install --path .
如果您想体验应用程序的 UI 版本,可以运行以下命令
cargo tauri dev
或制作应用程序安装程序,运行以下命令以构建它
cd app/
npm i
npm run build
cargo tauri build
在 macOS 上,生成的安装包位于 target/release/bundle/dmg。
CLI 使用方法
输入 git stats -h
查看完整的帮助信息
git stats -h
This tool provides comprehensive statistics for each user in the current repository.
Usage: git-stats [OPTIONS] [-- <PATHSPEC>...]
Arguments:
[PATHSPEC]... A glob pattern to match against file paths. src, *.rs, or src/**/*.rs etc
Options:
-s, --sort <SORT> Sort by the specified column. The default is unordered [possible values: commits, files-changed, insertions, deletions, lines-changed]
-c, --max-count <MAX_COUNT> Limit the number of ros to show
-h, --help Print help (see more with '--help')
-V, --version Print version
这是在 bevy 仓库中的统计示例,转到仓库目录并运行它
$ git stats -c 5 -s commits
██████████████████████████████████████████████████████████████████████ 2820/2820
┌──────────────┬─────────┬─────────┬──────────────┬──────────────┬─────────────┐
│ Author ┆ Commits ┆ Files ┆ Insertions ┆ Deletions ┆ Lines │
│ ┆ ┆ Changed ┆ ┆ ┆ Changed │
╞══════════════╪═════════╪═════════╪══════════════╪══════════════╪═════════════╡
│ Carter ┆ 1059 ┆ 16247 ┆ 723427 ┆ 682678 ┆ 1406105 │
│ Anderson ┆ (72%) ┆ (89%) ┆ (94%) ┆ (98%) ┆ (96%) │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ François ┆ 214 ┆ 995 ┆ 17871 ┆ 7333 ┆ 25204 │
│ ┆ (15%) ┆ (5%) ┆ (2%) ┆ (1%) ┆ (2%) │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ Robert Swain ┆ 76 ┆ 421 ┆ 18941 ┆ 3401 ┆ 22342 │
│ ┆ (5%) ┆ (2%) ┆ (2%) ┆ (0%) ┆ (2%) │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ Jakob ┆ 62 ┆ 250 ┆ 4825 ┆ 1516 ┆ 6341 │
│ Hellermann ┆ (4%) ┆ (1%) ┆ (1%) ┆ (0%) ┆ (0%) │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ Daniel McNab ┆ 57 ┆ 248 ┆ 2508 ┆ 2711 ┆ 5219 │
│ ┆ (4%) ┆ (1%) ┆ (0%) ┆ (0%) ┆ (0%) │
└──────────────┴─────────┴─────────┴──────────────┴──────────────┴─────────────┘
这意味着打印出提交数量最高的前 5 位作者。
CLI 具有以下参数
参数 | 描述 |
---|---|
sort |
用户的排序方法,默认情况下是无序的。可以按 5 个维度排序:提交、变更文件、插入、删除、变更行数。 |
max-count |
限制显示的 ros 数量。 |
PATHSPEC |
用于匹配文件路径的 glob 模式。src 、*.rs 或 src/**/*.rs 等。使用带有 :! 前缀的标记来排除指定的路径,例如:git stats -- ':!src/assets' 以排除 src/assets 目录中的所有文件。 |
匹配指定路径
以下是一个示例,仅计算 src 目录中的所有文件以及 crates 目录中的 rs 文件。
git stats -s commits -c 5 -- src crates/**/*.rs
排除指定路径
git stats -s commits -c 5 -- src crates ':!crates/bevy_core'
排除路径的格式与匹配路径的格式相同,但以 :!
前缀开头的路径将从统计结果中排除。
应用
以下是该应用的截图
待办事项
- 更多统计方法。
- 提供更多安装渠道。
依赖项
~2.5–3.5MB
~61K SLoC