统计git存储库中的行数

我如何计算git存储库中所有文件中的总行数?

git ls-files给了我一个由git跟踪的文件列表。

我正在寻找一个命令来cat所有这些文件。 就像是

git ls-files | [cat all these files] | wc -l

xargs会做你想做的事情:

git ls-files | xargs cat | wc -l

但有了更多的信息,可能更好,你可以这样做:

git ls-files | xargs wc -l

git diff --stat 4b825dc642cb6eb9a060e54bf8d69288fbee4904

这显示了从空树到当前工作树的差异。 当前工作树中的所有行都会被计数。


如果你想知道这个计数是因为你想知道项目的范围,那么你可能更喜欢CLOC的输出(“Count Lines of Code”),这可以让你按语言细分出重要且不重要的代码行。

cloc $(git ls-files)

(这一行相当于git ls-files | xargs cloc ,它使用sh$()命令替换功能。)

示例输出:

      20 text files.
      20 unique files.                              
       6 files ignored.

http://cloc.sourceforge.net v 1.62  T=0.22 s (62.5 files/s, 2771.2 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Javascript                       2             13            111            309
JSON                             3              0              0             58
HTML                             2              7             12             50
Handlebars                       2              0              0             37
CoffeeScript                     4              1              4             12
SASS                             1              1              1              5
-------------------------------------------------------------------------------
SUM:                            14             22            128            471
-------------------------------------------------------------------------------

你将不得不首先安装CLOC。 你或许可以安装cloc与包管理器-例如, brew install cloc与自制。

cloc $(git ls-files)通常是对cloc .的改进cloc . 。 例如,上面的带有git ls-files示例输出报告了471行代码。 对于同一个项目, cloc . 报告高达456,279行(需要6分钟运行),因为它在Git忽略的node_modules文件夹中搜索依赖关系。

链接地址: http://www.djcxy.com/p/9807.html

上一篇: Count number of lines in a git repository

下一篇: How to count lines in a document?