Git日志计数提交文件中的特定行

时间:2016-09-17 18:30:31

标签: git

有一种方法可以检索文件中特定行的提交,如下所示。但是,有没有办法使用git log计算文件中特定行的提交数量?

git log -L:40,50:filename.txt

1 个答案:

答案 0 :(得分:3)

我做这样的事情:

git log -L 1,3:tests/requirements.txt | grep -Ec "commit [0-9a-fA-F]{40}"

这样做的目的是获取影响这些行的所有提交,然后使用grep隔离并计算提交ID。 -E标记使grep使用扩展的正则表达式,-c使其输出计数而不是匹配的行。

这适用于git log的任何变体 - 例如,

git log | grep -Ec "commit [0-9a-fA-F]{40}"

将为您提供回购中的总提交次数,

git log tests/requirements.txt | grep -Ec "commit [0-9a-fA-F]{40}"

将为您提供涉及该文件的提交总数,依此类推。只要您的git log调用包含完整的提交ID,您就会变得非常黄金。