计算有多少次提交修改了文件扩展名

Count how many commits have modified a file extension

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

我想看到的一件事是有多少提交更新了特定扩展的文件。例如,我想统计项目中所有已更新 .tex 文件的提交(我不关心其他文件是否也被更改)。

我从我的脚本中得到的东西似乎很有意义,但我想知道 git 中是否有一个内置的类似功能,或者一个快速的解决方法来收集这个数据,以验证我的输出。

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

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 如果您只对某些类型的文件修改等感兴趣)