计算已修改文件扩展名的提交次数

时间:2018-07-17 12:27:49

标签: git version-control commit

我需要从git项目中提取一些数据,为此,我正在开发一个脚本,以所需的格式输出结果。

我要看的一件事是有多少次提交已更新特定扩展名的文件。例如,我要计算项目中已更新.tex个文件的所有提交(我也不在乎是否也更改了其他文件)。

我从脚本中得到的东西似乎是有道理的,但是我想知道git中是否有内置的,类似的功能,或者是否有一种快速的变通办法来收集此数据以进行验证我的输出。

1 个答案:

答案 0 :(得分:3)

您可以列出影响任何与扩展名匹配的文件的提交

git log :/*.txt :/**/*.txt

(请注意,第一个模式表示查找工作树根目录,第二个模式表示查找根目录下的任何目录。在我的测试中,仅使用:/*.txt工作,但基于文档,我看不到原因。如果有人可以填写该空白,请执行...)

您可以简化输出,然后将其输入到wc

git log --format=%H :/*.txt :/**/*.txt |wc -l

您可能需要扩大搜索范围,因为以上内容仅显示了HEAD可以访问的内容。

git log --all --format=%H :/*.txt :/**/*.txt |wc -l

您还可能需要避免简化历史记录。

git log --all --full-history --format=%H :/*.txt :/**/*.txt |wc -l

您可以使用许多其他选项来精确控制输出中包含的内容(例如,--diff-filter如果您只对某些类型的文件修改感兴趣,等等)