如何计算git存储库中的所有文件?

Dan*_*gby 50 git

您如何获得当前git存储库中所有文件的计数?

Dan*_*gby 105

您可以使用以下命令获取git存储库中所有跟踪文件的计数:

git ls-files | wc -l
Run Code Online (Sandbox Code Playgroud)

命令细分:

  • git ls-files命令本身打印出存储库中所有跟踪文件的列表,每行一个.
  • |操作者漏斗前述命令输出到命令管道以下.
  • wc -l命令调用单词count(wc)程序.传递-l旗帜要求它返回总行数.

注意:这将仅返回存储库中已跟踪文件的计数,这意味着不会计算任何被忽略的文件或新的和未提交的文件.

  • 如果你想要计算某些文件扩展名,那么很容易通过grep来管理`git ls-files | grep"\ .js $"| wc -l`用于JavaScript(.js)文件 (6认同)
  • [如果文件名中带有'\ n'`,则此方法无效](https://unix.stackexchange.com/q/128985/44425)。您需要`git ls-files -z | grep -zc“ ^”` (2认同)
  • 使用 grep 获取 mnorrish 建议的文件扩展名计数的替代方法是`git ls-files -x *.js -i | wc -l` `-x` 告诉文件要排除,`-i` 告诉只包含排除的文件。这适用于 Windows,并且键入的字符较少 :) (2认同)

Ben*_*ing 7

只是为了建立在已接受的答案的基础上,您还可以过滤要计算的文件类型。

仅计算.json文件数

# Will output only json file paths
git ls-files "./*.json" | wc -l
Run Code Online (Sandbox Code Playgroud)

仅计算.c文件数

git ls-files "./*.c" | wc -l
Run Code Online (Sandbox Code Playgroud)

一种衡量存储库中常见语言的相当有用的方法......


use*_*176 5

如果您来到这里寻找一种方法来为 github 上托管的存储库执行此操作而不克隆它,您可以这样做:

svn ls -R https://github.com/exampleproject/branches/master | wc -l
Run Code Online (Sandbox Code Playgroud)