java统计git代码提交行数,计算git存储库中的行数

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

git ls-files为我提供了git跟踪的文件列表。

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

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

#1楼

我遇到了git ls-files | xargs wc -l批处理问题 git ls-files | xargs wc -l在处理大量文件时,其中行计数将被分成多个total 。

wc -l $(git ls-files)

或者,如果您只想检查一些文件,例如代码:

wc -l $(git ls-files | grep '.*\\.cs')

#2楼

无论如何,最好的解决方案都埋没在@ ephemient的回答的评论中。 我只是把它拉到这里,以免它被忽视。 这个应该归功于@FRoZeN(和@ephemient)。

git diff --shortstat `git hash-object -t tree /dev/null`

返回repo工作目录中的文件和行总数,没有任何额外的噪音。 作为奖励,只计算源代码 - 从计数器中排除二进制文件。

上面的命令适用于Linux和OS X.它的跨平台版本是

git diff --shortstat 4b825dc642cb6eb9a060e54bf8d69288fbee4904

这也适用于Windows。

为了记录,排除空行的选项,

-w / --ignore-all-space ,

-b / --ignore-space-change ,

--ignore-blank-lines ,

--ignore-space-at-eol

与--shortstat使用时没有任何效果。 空行被计算在内。

#3楼

如果您想要了解项目的范围,那么您可能更喜欢CLOC的输出(“计算代码行”),它可以按语言划分重要且无关紧要的代码行。

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 - 例如,使用Homebrew进行 brew install cloc 。

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

#4楼

所以这就是我现在使用的:

git ls-files | grep "\\(.html\\|.css\\|.js\\|.java\\)$" | xargs wc -l

#5楼

我这样做了:

git ls-files | xargs file | grep "ASCII" | cut -d : -f 1 | xargs wc -l

如果您将存储库中的所有文本文件计为感兴趣的文件,则此方法有效。 如果某些被认为是文档等,则可以添加排除过滤器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值