如何在 git 中显示作者贡献的统计信息?

Posted

技术标签:

【中文标题】如何在 git 中显示作者贡献的统计信息?【英文标题】:How do I show statistics for author's contributions in git? 【发布时间】:2017-07-31 15:28:31 【问题描述】:

我正在与一个 git 项目的团队合作,我想查看每个作者在编写的行数或编辑的行数等方面的贡献...如何显示作者的统计数据?

【问题讨论】:

【参考方案1】:

很简单: git shortlog -s -n

【讨论】:

这将计算提交数,而不是代码行数 -s -n 可以合并成-sn @a.ch.要计算代码行数,您可以使用:git ls-files | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep -I '^author '; done | sort -f | uniq -ic | sort -n --reverse @hartmut 你应该发布一个明确的答案 @hartmut 这很好,但它不计算被删除的行或被其他人修改的行【参考方案2】:

你可以试试git-stats或者使用git命令explore from the logs

参考以下帖子

    图形统计 - Generating statistics from Git repository https://gist.github.com/eyecatchup/3fb7ef0c0cbdb72412fc Which Git commit stats are easy to pull PR-Count Github App - 仅限 Github。谢谢@ben

【讨论】:

如果你不喜欢命令行工具,也可以试试 github 应用:PR Count github.com/marketplace/pr-count。【参考方案3】:

你应该看看repoXplorer,这是我开发的一个开源项目。它能够为一个项目(一组 git 存储库)以及一个贡献者和一组贡献者计算统计数据。它提供了一个 REST 接口和一个 Web UI。 Web UI 提供各种信息,例如,对于给定的贡献者:

提交、行更改和项目计数 提交日期直方图 提交次数最多的项目 按行排列的热门项目已更改

但最好看一下演示实例here。

这是贡献者的统计信息页面的屏幕截图(统计信息是在 repoplorer 索引的所有存储库中计算的,但可以针对特定项目进行过滤):

【讨论】:

我们可以将它用于非 github 项目吗? 当然,它可以与任何 git 存储库一起使用。它不依赖于 GitHub 或其他托管平台。 有什么说明吗?我至少在“快速入门”下只看到了 github 特定的 如果你使用docker方式,那么按照github.com/morucci/…部分的第一步来启动repoXplorer。然后按照github.com/morucci/repoxplorer#define-projects-to-index 在 docker-data/conf/ 中创建一个“projects.yaml”。 github 助手只是一个从 github API 读取 github 组织以创建“projects.yaml”的工具。在您的情况下,您必须手动创建文件。 除了 github 之外,看不到如何配置它【参考方案4】:

我建议Gitential。它测量:

编码量 编码时间 生产力 效率

并提供分析界面以在多个级别上可视化它们:

项目 团队 回购 开发人员

它还删除了作者身份的重复数据并过滤了可疑的提交以提供更好的图片。

【讨论】:

【参考方案5】:

PR Count 是一个 github 应用程序,用于显示贡献统计信息。

您可以免费安装。无需编写自己的脚本或使用命令行工具。

【讨论】:

嗨! “PR Count”应用程序也适用于私人回购吗?我安装了它,但不确定如何查看统计信息。 是的,它确实适用于私人回购。尝试卸载并再次安装该应用程序。它应该将您重定向到 prcount.com,您可以在其中查看所有统计信息! @xke 看起来有人可能已经入侵了这个应用程序,它在安装时重定向到一个赌场域。

以上是关于如何在 git 中显示作者贡献的统计信息?的主要内容,如果未能解决你的问题,请参考以下文章

删除特定文件上的贡献者统计信息

如何在一行中获取带有简短统计信息的 Git 日志?

Git“会计” [重复]

如何在 Wordpress 网站上显示数据库查询统计信息?

Oracle执行计划与统计信息的一些总结

Nebula Graph 特性讲解——RocksDB 统计信息的收集和展示