有一种方法可以检索文件中特定行的提交,如下所示。但是,有没有办法使用git log计算文件中特定行的提交数量?
git log -L:40,50:filename.txt
答案 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,您就会变得非常黄金。