【问题标题】:Get Git statistics about line contributions within specific directories获取有关特定目录中行贡献的 Git 统计信息
【发布时间】:2016-08-19 05:44:35
【问题描述】:

我希望看到统计数据告诉我哪些作者在给定目录中贡献了多少行

git-extras 和其他一些类似工具存在,但我无法确定是否可以使用它们(或其他任何东西)将我的统计信息限制在给定目录中。

有什么想法吗?

【问题讨论】:

    标签: git


    【解决方案1】:

    您可以使用简短的脚本:

    #!/bin/bash
    
    git shortlog -s -- $1 | cut -c8- | while read i
    do
        git log --author="$i" --pretty=tformat: --numstat -- $1 \
        | awk -v name="$i" '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "%s: added lines: %s removed lines: %s total lines: %s\n", name, add, subs, loc }'
    done
    

    叫它loc.sh 然后运行:loc.sh [目录/文件]

    输出会是这样的:

    名称1:添加行:10757 删除行:49 总行:10708
    Nmae2:添加行:1193 删除行:94255 总行:-93062

    查看更多 herehere

    【讨论】:

    • 这是否将输出限制到存储库中的单个目录,或者统计信息是否与整个存储库相关?如果没有,你能做到吗? ——这是问题的关键之一。如果是,那是哪一部分?
    • 是的。当您运行脚本 loc.sh 时,将其作为 cmdline 中的参数提供所需的文件/目录。 (您可以在脚本本身中看到“-- $1”这使得 git 命令过滤所需的文件/目录)
    • 确认!谢谢 --- 现在我必须研究一下您使用 bash 的方式,以便更好地理解它。
    【解决方案2】:

    检查此 CLI 工具 (https://www.npmjs.com/package/whodid)

    $ npm install whodid -g
    

    然后,转到您的项目目录并输入以下内容

    $ cd my-project
    $ whodid
    

    你也可以得到 JSON 格式的结果

    $ whodid author --as-json=true
    

    如果你愿意,不推荐,但你可以在合并提交中包含行。

    $ whodid author --include-merge=true
    

    如果你觉得某人的分数太高,你可以用'heavy'子命令查看原因。

    $ whodid heavy --num2=20 --author="jeff <jeff@xahoo.com>"
    

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 2021-12-10
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      相关资源
      最近更新 更多