我如何计算在一个git存储库中所有文件中出现的总行数?
Git ls-files给了我一个由Git跟踪的文件列表。
我正在找一个命令来隐藏所有这些文件。类似的
git ls-files | [cat all these files] | wc -l
我如何计算在一个git存储库中所有文件中出现的总行数?
Git ls-files给了我一个由Git跟踪的文件列表。
我正在找一个命令来隐藏所有这些文件。类似的
git ls-files | [cat all these files] | wc -l
当前回答
如果你想从某个作者那里获得行数,试试下面的代码:
git ls-files "*.java" | xargs -I{} git blame {} | grep ${your_name} | wc -l
其他回答
Try:
find . -type f -name '*.*' -exec wc -l {} +
在有问题的目录上
从时钟1.68开始工作:
cloc——风险投资= git
如果你想找到非空行总数,你可以使用AWK:
git ls-files | xargs cat | awk '/\S/{x++} END{print "非空行总数:",x}'
它使用regex计算包含非空格字符的行数。
git diff --stat 4b825dc642cb6eb9a060e54bf8d69288fbee4904
这显示了从空树到当前工作树的差异。它恰好计算当前工作树中的所有行。
要获得当前工作树中的数字,请执行以下操作:
git diff --shortstat `git hash-object -t tree /dev/null`
它会给你一个字符串,比如1770 files changed, 166776 insertions(+)。
我是这样做的:
git ls-files | xargs file | grep "ASCII" | cut -d : -f 1 | xargs wc -l
如果将存储库中的所有文本文件都计算为感兴趣的文件,那么这是可行的。如果其中一些被认为是文档等,则可以添加排除过滤器。