计算 git 存储库给定分支中所有文件的所有行的出现总数

dhi*_*ilt 4 git bash shell awk grep

我可以通过以下命令在 git 存储库的单个分支中找到包含“我的字符串”模式的所有行

git grep "my string" my_branch
Run Code Online (Sandbox Code Playgroud)

说,结果如下

my_branch: file1:file1 什么是“我的字符串”?
my_branch: file2:file2 你好,“我的字符串”只是“我的字符串”!

我们在两个文件的两行中看到 3 次出现。我可以通过以下方式计算这些行

git grep "my string" my_branch | wc -l
Run Code Online (Sandbox Code Playgroud)

这将导致

2

问题是如何获取给定分支中所有文件的所有行中字符串出现的确切数量?是否可以运行一些命令或脚本,在我的示例中给出3而不是2

Unb*_*ess 6

-o选项是在 2.19 中引入的。在以前的版本中,您可以将git show其与标准grep调用结合使用:

$ git show my_branch | grep -o 'my string' | wc -l
Run Code Online (Sandbox Code Playgroud)