git:找出谁的代码被删除了

git:找出谁的代码被删除了

因为我们可以跟踪提交历史在 Git 存储库中查找代码的添加/删除,我想了解如何跟踪/统计代码被删除最多的作者。

这可能表明他们最初编写的代码不是那么好(或者他们构建的功能不再需要)。

答案1

查看 github分散火焰,用python编写,描述如下:

描述

显示 git diff 的输出以及 git blame 添加/删除行的附加信息,以便可以轻松找出谁做了什么。

输出

格式保持不变或已添加的行将指示这些行添加到文件的时间。已删除的行将显示删除该行的修订版本。当无法精确定位删除该行的修订版本时,将报告该行所在的最后一个修订版本(如 git blame --reverse 所报告的那样)。发生这种情况时,百分号 (%) 将用作已删除行的前缀(而不是通常的 -)。

difflame 输出示例,使用参数--no-hints最小化输出:

diff --git a/difflame.py b/difflame.py
index ff65112..ec21fcd 100755
--- a/difflame.py
+++ b/difflame.py
@@ -51,7 +51,7 @@ REVISIONS_INFO_CACHE=dict()
 9d2e8d4 (Edmundo Carmona Antoranz 2017-02-02 22:11:09  51  51) 
 18ecda8 (Edmundo Carmona Antoranz 2017-02-15 00:42:18  52  52) '''
 cb52676 (Edmundo Carmona Antoranz 2017-02-15 01:01:06  53  53) caches to save:
-cd789a5 (Edmundo Carmona Antoranz 2017-02-15 01:10:15  54    )     - reverse blamed files # TODO consider cleaning this when we finish processing a file
+cd789a5 (Edmundo Carmona Antoranz 2017-02-15 01:10:15      54)     - reverse blamed files
 cb52676 (Edmundo Carmona Antoranz 2017-02-15 01:01:06  55  55)     - diff of files when analyzing revisions (merges and so on)
 cb52676 (Edmundo Carmona Antoranz 2017-02-15 01:01:06  56  56) 
 18ecda8 (Edmundo Carmona Antoranz 2017-02-15 00:42:18  57  57) BLAMED_FILES_CACHE[originating_revision][final_revision][filename] = lines

可以编写脚本来处理此输出,将已删除行中的作者姓名提取到临时文本文件中,然后对行进行排序和计数(例如使用sort | uniq -c | sort -nr)。

答案2

来自 StackOverflowhttps://stackoverflow.com/questions/1828874/generating-statistics-from-git-repository/1829302#1829302

Git统计git 历史统计生成器) 提及 雪莉,用 Python 编写,需要 Gnuplot 来绘制图表,还有

相关内容