计算有多少次提交修改了文件扩展名
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
如果您只对某些类型的文件修改等感兴趣)
我需要从 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
如果您只对某些类型的文件修改等感兴趣)