首页 > 解决方案 > 如何计算提交之间特定作者更改的总行数?

问题描述

我发现计算“git 存储库”中特定作者更改的总行数是可行的。
我还发现计算 2 次提交之间更改的总行数是可行的。
git diff --shortstat commit1...commit2。

但是我没有找到如何计算特定作者在 2 次提交之间更改的总行数。
实际上,在我的情况下,有一个分支包含来自不同作者的多个提交,很容易发现分支到 master 之间的 Merge 请求的总行已更改,但我不知道如何找到 MR 的作者的贡献.

我想要的是 git diff --shortstat 的结果,但只显示特定用户的贡献。
作者:xxx:aa 文件已更改,bb 插入(+),cc 删除(-)

标签: git

解决方案


假设该范围内的所有提交都不是由一位作者做出的,那么此答案中的建议是正确的,并且是可能的最佳答案。

如果您要考虑的所有提交都不连续,则通常无法避免单独计算提交。当它们连续时,您可以在开始和结束提交之间执行差异,然后查看总结果。但是,当您只想选择一些提交时,例如只选择特定作者的提交,您不能这样做,您需要依赖单独的差异。

当然,您可以尝试从该作者那里挑选所有提交到一个单独的分支上,然后从头到尾进行差异化,但通常多个用户会与该代码进行交互,并且樱桃挑选会有冲突。在这种情况下,在没有其他贡献者的情况下,很难有效地谈论单个作者对该代码的贡献。如果需要,您仍然可以尝试,它可能在某些情况下有效,但并非在所有情况下都有效。

而且,当然,我应该指出,代码行数通常不能很好地表明开发人员的质量或性能,并且由于这些测量不应该用于比较开发人员,因此它们的精度不太重要。


推荐阅读